Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >还书后删除数据库中的借阅行

还书后删除数据库中的借阅行
EN

Stack Overflow用户
提问于 2017-05-20 16:28:54
回答 2查看 40关注 0票数 0

我正在为书做一个贷款系统,我有一个配置文件页面,显示你已经拿出的贷款,在每个下面是一个按钮,带你到一个表格,在那里你填写了书的条件,下是另一个按钮,将发送数据到我的数据库中的退货表,我想删除借阅表中的贷款,因为如果没有,然后贷款继续显示在配置文件页面上,用户可以还同一本书,因为他们想要的次数。任何帮助都将不胜感激。谢谢。

profile.blade.php

代码语言:javascript
运行
AI代码解释
复制
<?php
use App\Requests;
use App\Loan;
$request = Requests::where('userid', auth()->user()->userid)->get();
?>

@extends('layouts.app')

@section('content')
<div class="container">

        <div class="panel panel-default">
            <div class="panel-heading"><h1>Profile: {{ Auth::user()->f_name }}</h1></div>

            <div class="panel-body">

            <div class="container">

            <h3>Requests</h3>

               @foreach ($request as $request)
                <ul>

                    <h4>Title: {{$request->r_title}}</h4>
                    <h4>Author: {{$request->r_author}}</h4>
                    <h4>Year: {{$request->r_year}}</h4>
                    <h4>Condition: {{$request->r_condition}}</h4>
                    <br/>
                </ul>

                @endforeach
                </div>
                <div class="container">

                <h3>Loans</h3>

                @foreach ($loan as $loan)
                <ul>

                    <h4>Title: {{$loan->title}}</h4>
                    <h4>Start Date: {{$loan->startdate}}</h4>
                    <h4>Due Date: {{$loan->duedate}}</h4>
                    <br/>

                    <form action="{{url('returnform/'.$loan->loanid)}}" method="GET">
                        <input type="submit" name="returnbtn" value="returnform">
                    </form>

                </ul>
                @endforeach

                </div>
            </div>
        </div>

</div>
@endsection

returnform.blade.php

代码语言:javascript
运行
AI代码解释
复制
@extends('layouts.app')

@section('content')
<div class="container">

        <div class="panel panel-default">
            <div class="panel-heading"><h1>Return Book</h1></div>

            <div class="panel-body">

                        <form action="{{url('returns')}}" method="POST">
                        {{ csrf_field() }}    
                        <div>
                        <input type="hidden" name="lid" value="{{$loan->loanid}}" id="lid">
                            <input type="hidden" name="re_bookid" value="{{$loan->bookid}}" id="re_bookid">
                            <input type="hidden" name="re_title" value="{{$loan->title}}" id="re_title">  
                            <input type="hidden" name="re_ddate" value="{{$loan->duedate}}" id="re_ddate">               
                        </div>
                        <div>
                                <label for="title"><h4>Enter the books condition: </h4></label>
                                <select name ="re_condition" value="{{old('condition')}}">
                                    <option value="mint">Mint</option>
                                    <option value="good">Good</option>
                                    <option value="fair">Fair</option>
                                    <option value="poor">Poor</option>
                                </select>
                        </div>                       
                            <input type="submit" name="btn" value="returns">
                        </form>
            </div>
        </div>
</div>
@endsection

BookController.php

代码语言:javascript
运行
AI代码解释
复制
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Book;
use App\Returns;
use App\Requests;
use App\Loan;
use Carbon\Carbon;


 class BookController extends Controller
{

    ......

    function returnform($loanid)
{

    $loan = Loan::find($loanid);
    return view('book/returnform',['loan' => $loan]);

}


function returns(Request $request, $loanid)
{

    $return = new Returns();
    $return->userid = auth()->user()->userid;
    $return->f_name = auth()->user()->f_name;
    $return->l_name = auth()->user()->l_name;
    $return->bookid = $request->re_bookid;
    $return->title=$request->re_title;
    $return->condition=$request->re_condition;
    $return->returndate= Carbon::now();
    $return->duedate=$request->re_ddate;
    $return->save();
    return redirect('profile');
}

路线

代码语言:javascript
运行
AI代码解释
复制
....

Route::get('returnform/{loanid}', 'BookController@returnform');

Route::post('returns', 'BookController@returns');
EN

回答 2

Stack Overflow用户

发布于 2017-05-20 16:52:06

要删除表中的行,请使用以下代码

代码语言:javascript
运行
AI代码解释
复制
function deletereturns(Request $request, $loanid) {
    $return = Return::find($loanid); 
    $return->delete(); 
    // return to some place
}

添加一条路由,就完成了。

但我建议您使用boolean在表中创建一个新列,并将其设置为default false。

每次用户尝试删除贷款时,只需将false更改为true。

列出贷款时,使用where条件排除所有已删除的贷款。

这可以帮助你知道是谁删除了所有的贷款,这可能会有任何帮助

票数 0
EN

Stack Overflow用户

发布于 2017-05-20 17:16:42

$loanid参数在您的方法中不起作用,因为您没有向它传递任何值。但是,您要在隐藏的表单字段中设置贷款id。因此,这样做可以删除使用贷款id的贷款。

代码语言:javascript
运行
AI代码解释
复制
Loan::destroy($request->lid);

当用户还书时,您还应该添加一些检查。检查具有贷款id的贷款是否存在,并执行检查以查看登录的用户和被贷款的用户是否匹配。因为现在使用您的代码,任何用户都可以归还由任何其他用户借出的书籍。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44088312

复制
相关文章
ggplot的aes和aes_string的差异
总共是26个基因,它们都是在case 和 control两个分组需要看表达量差异,而且case 和 control两个分组内部都是10个病人。
生信技能树
2022/07/26
1.8K0
ggplot的aes和aes_string的差异
java使用AES加密解密 AES-128-ECB加密
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Administrator * */ public class AES { // 加密 public static String Encrypt(String sSrc, String sKey) throws Exce
故久
2020/06/09
3.4K0
Java中的DES和3DES加密算法详解
DES是一种对称加密算法,它使用相同的密钥进行加密和解密操作。DES算法的核心是一个称为Feistel网络的结构,它将明文分成左右两部分,并通过多轮迭代和替换操作来生成密文。
公众号:码到三十五
2024/05/24
3770
Java中的DES和3DES加密算法详解
openssl使用-- 之 AES算法库使用
树莓派上面使用openssl-- 之 AES算法库使用 1 OPENSSL 提供AES 库接口调用的两种方式 1.1 第一种方法,使用aes.h的方式  aes.h 代码如下, 添加了中文注释表示含义 /* * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use *
无限之生
2020/06/30
2.3K0
AES加密和RSA加密
最近项目需要用到前端加密,某些特定的数据需要前端加密之后再传输到后端,然后后端再按照与前端约定好的方式进行解密。
epoos
2022/06/06
2.4K0
AES加密和RSA加密
密码学技术02
一次性密码本是一种非常简单的密码,它原理是:“讲明文与一串随机的比特序列进行XOR运算”
yichen
2020/01/02
7440
java使用AES加密解密 AES-128-ECB加密
import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Administrator * */ public class AES { // 加密 public static String Encrypt(String sSrc, String sKey) throws Excep
故久
2020/06/04
4K0
Java使用AES加密解密
AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中
二十三年蝉
2018/08/01
5.1K0
DES和AES算法加密解密
前言:在api传递过程中或者操作cookie中的参数都是明文,很容易暴露一些用户以及私密的信息。
王念博客
2019/07/24
2K0
密码学系列之:feistel cipher
feistel cipher也叫做Luby–Rackoff分组密码,是用来构建分组加密算法的对称结构。它是由德籍密码学家Horst Feistel在IBM工作的时候发明的。feistel cipher也被称为Feistel网络。
程序那些事
2021/07/15
1.4K0
密码学系列之:feistel cipher
密码学系列之:feistel cipher
feistel cipher也叫做Luby–Rackoff分组密码,是用来构建分组加密算法的对称结构。它是由德籍密码学家Horst Feistel在IBM工作的时候发明的。feistel cipher也被称为Feistel网络。
程序那些事
2021/06/16
6590
读《图解密码技术》(一):密码
以前,对一些密码技术,虽然懂得怎么用,但对其原理却一直不甚了解,比如,用公钥加密后,为什么用私钥就可以解密?DES和AES加密时为什么需要一个初始化向量?想要了解这些密码技术的基本原理,而最近买书时看到了《图解密码技术》这本书,刚好可以解答到我的这些问题,于是,就买回来看了。
Keegan小钢
2018/08/10
3.3K1
读《图解密码技术》(一):密码
OpenSSL 使用AES对文件加解密
AES(Advanced Encryption Standard)是一种对称加密算法,它是目前广泛使用的加密算法之一。AES算法是由美国国家标准与技术研究院(NIST)于2001年发布的,它取代了原先的DES(Data Encryption Standard)算法,成为新的标准。AES是一种对称加密算法,意味着加密和解密使用相同的密钥。这就要求密钥的安全性非常重要,因为任何拥有密钥的人都能进行加密和解密操作。其密钥长度,包括128位、192位和256位。不同长度的密钥提供了不同级别的安全性,通常更长的密钥长度意味着更高的安全性。
王瑞MVP
2023/11/29
1.8K0
OpenSSL 使用AES对文件加解密
Vue项目使用AES做加密
1、先在vue项目中安装crypto-js 2、在项目中新建一个utils.js文件 3、utils.js文件中的内容 /** * 工具类 */ import Vue from 'vue' imp
用户1174387
2018/07/04
4.2K0
Python使用AES算法进行加解密
本文要点在于Python扩展库pycrypto实现了大量密码学算法,可以拿来直接使用。 import string import random from Crypto.Cipher import AES def keyGenerater(length): '''生成指定长度的秘钥''' if length not in (16, 24, 32): return None x = string.ascii_letters+string.digits return ''.join([random
Python小屋屋主
2018/04/16
1.8K0
《深入浅出密码学》——读书笔记(更新中)
h1 { text-align: center } h2 { text-align: center } .picture { text-align: center } thead th, tfoot th { text-align: left; background: grey; color: white } tbody th { text-align: left; background: Gainsboro; color:white }
Homqyy
2023/03/06
9860
《深入浅出密码学》——读书笔记(更新中)
AES加密
package com.test.util.encrypt; import org.apache.commons.lang3.StringUtils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import java.ma
Ryan-Miao
2018/03/13
3.1K0
CTF 玩转 Crypto 月度总结
两个越来,感谢老大哥们的照顾,自己学到挺多的简单的写下 Crypto 各类密码学和 misc 类流量分析的心得。菜鸡一个,不喜勿喷。
信安之路
2018/08/08
2.8K0
CTF 玩转 Crypto 月度总结
斯坦福大学密码学-分组密码 03
典型的分组密码以迭代的形式构建。输入密钥k,然后将密钥扩张成一系列的回合密钥 到 。使用这些回合密钥一次又一次的迭代使用回合函数加密明文信息。
Daffy
2020/11/03
2K0
使用AES进行文件加密算法
使用AES进行文件加密算法 前言:最近想对手机上一些文件进行加密隐藏,想自己基于jvm平台写一个(kotlin/java)但是网上的加密算法都是不公开的,所以自己利用AES的算法整出了一个文件加密解密的工具 注意:因为我电脑上的JDK是12+,所以如果移植到安卓上有出现报错,是正常现象,只需要修改 AESEncoder 文件就好了 FileEncoder.ktimport java.io.Closeableimport java.io.Fileimport java.io.RandomAccessFilei
Xiaolei123
2019/05/29
3.4K0
使用AES进行文件加密算法

相似问题

为什么AES不是Feistel密码?

30

在Feistel网络中对较小块使用AES

10

双圆Feistel网络

10

学习Feistel密码

20

Poly1305-AES能与AES-256一起使用吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档