我尝试使用update button
更新数据库中的记录,该记录链接到更新表单所在的页面,但是每次单击按钮时,都会出现404错误(我认为可能是问题是页面无法读取所请求帖子的id
。
这是我的路线
Route::get('/pages/update/{id}','CallsController@edit');
Route::post('/pages/update/{id}','CallsController@update');
我的 CallsController
public function edit($id)
{
// $calls = Call::where('user_id', auth()->user()->id)->where('id', $id)->first();
// return view('pages.assignCall', compact('calls', 'id'));
$calls = Call::find($id);
return view('pages.assignCall')->with('calls', $calls);
}
public function update(Request $request, $id)
{
$calls = new Call();
$data = $this->validate($request, [
'call_details'=>'required',
]);
$data['id'] = $id;
$calls->updateCall($data);
return redirect('pages.pendingCalls');
}
视图的update.blade.php
文件夹中也有pages
。
这是我的更新按钮
<a href="{{asset('/pages/update')}}>update</a>
答案 0 :(得分:1)
您不应使用资产助手来生成网址,而应使用url helpers。此外,您还必须传递要更新的商品的ID。由于缺少此内容,您会得到404。
您应该执行以下操作:
<a href="{{ url('/pages/update/{$page->id}') }}">update</a>
答案 1 :(得分:1)
您可以使用laravel名称路由。如果您使用名称路由,那么您的路由应如下所示
Route::get('/pages/update/{id}','CallsController@edit')->name('pages.update.view');
Route::post('/pages/update/{id}','CallsController@update')->name('pages.update');
您的更新按钮应如下图所示
<a href="{{ route('pages.update.view', $call->id) }}">update</a>