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

Php 还书后删除数据库中的借书行,php,laravel,Php,Laravel,我正在制作一个图书借阅系统,我有一个档案页面,显示您借阅的图书,每个页面下方都有一个按钮,可以将您带到一个表单,在该表单中,您可以填写图书的条件,该按钮下方还有一个按钮,可以将数据发送到我数据库中的退货表,我想删除loan表中的loan,因为如果没有,那么loan将继续显示在profile页面中,用户可以根据需要多次返回同一本书。任何帮助都将不胜感激。 谢谢 profile.blade.php <?php use App\Requests; use App\Loan; $request =

我正在制作一个图书借阅系统,我有一个档案页面,显示您借阅的图书,每个页面下方都有一个按钮,可以将您带到一个表单,在该表单中,您可以填写图书的条件,该按钮下方还有一个按钮,可以将数据发送到我数据库中的退货表,我想删除loan表中的loan,因为如果没有,那么loan将继续显示在profile页面中,用户可以根据需要多次返回同一本书。任何帮助都将不胜感激。 谢谢

profile.blade.php

<?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
@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
路线

....

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

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

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

function deletereturns(Request $request, $loanid) {
    $return = Return::find($loanid); 
    $return->delete(); 
    // return to some place
}
添加一条路线并完成它

但我建议您在表中使用boolean创建一个新列,并将default设置为false
每次用户试图删除贷款时,只需将false更改为true
列出贷款时,请使用where条件排除所有已删除的贷款


这有助于您了解是谁删除了所有贷款,这可能会在任何方面有所帮助,
$loanid
参数在您的方法中不起作用,因为您没有向它传递任何值。但是,您正在一个隐藏的表单字段中设置贷款id。因此,执行此操作可以使用贷款id删除贷款

Loan::destroy($request->lid);

当用户返回图书时,还应该添加一些检查。检查具有贷款id的贷款是否存在,并检查登录用户和贷款用户是否匹配。因为现在有了你的代码,任何用户都可以归还任何其他用户借来的书。

我不会删除它,我会在时间戳上设置一个
returned\u并基于此进行过滤。
Loan::destroy($request->lid);