我试图更新我的数据透视表approvals_document
与列isApprove
,这是一个额外的列。我使用这个方法,所以它不会在我的数据透视表中重复。
@foreach ($pendingDocuments as $list)
<form class = "form-inline" id="submitMe" method = "post" action = "{{ url('documents/pending') }}">
<input type = "hidden" name = "id" value = "{{ $list->id }}">
<div class = "radio">
<label><input type = "radio" onclick = "showApprove()" name = "status" value = "1"> Approve</label>
</div>
<div class = "radio">
<label><input type = "radio" onclick = "showReject()" name = "status" value = "2"> Reject</label>
</div>
<input type = "hidden" name = "_token" value = "{{ Session::token() }}">
</form>
@endforeach
控制器public function updateApprovalsDocument(Request $request, $id)
{
$document = DB::table('approvals_document')
->select('approvals_document.id', 'approvals_document.isApprove')
->where('approvals_document.id', '=', $id)
->first();
foreach($request->status as $status)
{
$document->sentToApprovers()->sync([$status => ['isApprove' => $request->status, 'updated_at' => new DateTime]], true);
}
return redirect()->back();
}
$status
这是我认为的单选按钮的名称。我是否需要在这里使用first()
方法来使用单选按钮更新我的记录?
路线
Route::get('/documents/pending',
[
'uses' => ''App'Http'Controllers'DocumentController@documentsSentForApproval',
'as' => 'document.pending',
]);
Route::post('/documents/pending',
[
'uses' => ''App'Http'Controllers'DocumentController@updateApprovalsDocument',
'as' => 'document.pending',
]);
误差Missing argument 2 for App'Http'Controllers'DocumentController::updateApprovalsDocument()
但是我已经在我的参数中定义了$id
和Request $request
,并在顶部导入了use Illuminate'Http'Request;
,我如何解决这个问题?
<form class = "form-inline" id="submitMe" method = "post" action = "{{ route('documents/pending',['id' => [$list->id]]) }}">
<div class = "radio">
<label><input type = "radio" onclick = "showApprove()" name = "status" value = "1"> Approve</label>
</div>
<div class = "radio">
<label><input type = "radio" onclick = "showReject()" name = "status" value = "2"> Reject</label>
</div>
<input type = "hidden" name = "_token" value = "{{ Session::token() }}">
</form>
控制器public function updateApprovalsDocument(Request $request)
{
$id = $request->get('id'); //add this to get the id
$document = DB::table('approvals_document')
->select('approvals_document.id', 'approvals_document.isApprove')
->where('approvals_document.id', '=', $id)
->first();
$document->sentToApprovers()->sync([$request->status => ['isApprove' => $request->status, 'updated_at' => new DateTime]], true);
}
将$id
从方法的参数列表中删除
public function updateApprovalsDocument(Request $request)
{
$id = $request->get('id');
$document = DB::table('approvals_document')
->where('approvals_document.id', '=', $id)
->update(['isApprove' => $request->status, 'updated_at' => new DateTime]]);
return redirect()->back();
}