我正在建立一个书籍贷款系统,我有一个个人资料页面,显示你已经拿出的贷款,每个下面都是一个按钮,带你到一个表格,你填写书的条件,在是另一个将数据发送到我的数据库中的返回表的按钮,我想删除贷款表中的贷款,因为如果没有,那么贷款将继续显示在配置文件页面中,并且用户可以多次返回同一本书他们要。任何帮助将不胜感激。 感谢。
profile.blade.php
for(int i=0; i<20; i++){
btn1[i] = new JButton(String.valueOf(i+1));
btn1[i].setPreferredSize(new Dimension(60, 30));
btn1[i].setBackground(Color.green);
panel.add(btn1[i]);
}
returnform.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
BookController.php
@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
路由
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');
}
答案 0 :(得分:0)
要删除表格中的行,请使用以下代码
function deletereturns(Request $request, $loanid) {
$return = Return::find($loanid);
$return->delete();
// return to some place
}
添加路线及其完成。
但我建议您使用boolean在表中创建一个新列,并设置默认值false。
每次用户尝试删除贷款时,只需将false更改为true即可。
当您列出贷款时,请使用where条件排除所有已删除的贷款。
这可以帮助您了解谁删除了所有贷款,这可能会有所帮助
答案 1 :(得分:0)
$loanid
参数在您的方法中不起作用,因为您没有向其传递任何值。但是,您在隐藏的表单字段中设置贷款ID。这样做是为了使用贷款ID删除贷款。
Loan::destroy($request->lid);
您还应该在用户退回图书时添加一些检查。检查具有贷款ID的贷款是否存在,并检查登录用户和借出的用户是否匹配。因为现在使用您的代码,任何用户都可以返回由任何其他用户借出的图书。