如何使用laravel中的帖子链接获取帖子ID

时间:2018-12-05 08:52:20

标签: php laravel

我尝试使用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>

2 个答案:

答案 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>