您好我已经使用Laravel 5已经3天了,我遇到了问题。我正在测试我的编辑页面,我收到错误No query results for model
。这是示例链接http://localhost:8000/profile/sorxrob/edit
。 sorxrob
有一个用户名。这是我的路线:
Route::bind('user', function($user) {
return App\User::where('username', $user)->first();
});
Route::get('profile/{user}', 'ConsultaProfileController@viewProfile');
Route::get('profile/{user}/edit', 'ConsultaProfileController@edit');
在我的ConsultaProfileController
这里是公共职能部门:
public function edit($id)
{
$account = User::findOrFail($id);
return view('consulta.edit', compact('account'));
}
每当我尝试http://localhost:8000/profile/sorxrob/edit
时,它都会向我显示错误No query results for model
,但当我将路线更改为Route::get('profile/{id}/edit', 'ConsultaProfileController@edit');
时,它会正常工作,但网址现在应该是http://localhost:8000/profile/6/edit
,其中6是sorxob的id。我想要使用用户名,但我不知道问题出在哪里。
答案 0 :(得分:1)
这是因为你已经拥有一个User
对象。
您已将user
绑定到User
个对象。因此,您收到的参数是User
对象,而不是id
。所以不需要再次查询。
只需使用
public function edit($user)
{
return view('consulta.edit', compact('user'));
}