Laravel模型没有查询结果

时间:2015-06-10 15:08:12

标签: laravel laravel-5

您好我已经使用Laravel 5已经3天了,我遇到了问题。我正在测试我的编辑页面,我收到错误No query results for model。这是示例链接http://localhost:8000/profile/sorxrob/editsorxrob有一个用户名。这是我的路线:

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。我想要使​​用用户名,但我不知道问题出在哪里。

1 个答案:

答案 0 :(得分:1)

这是因为你已经拥有一个User对象。

您已将user绑定到User个对象。因此,您收到的参数是User对象,而不是id。所以不需要再次查询。

只需使用

public function edit($user)
{
    return view('consulta.edit', compact('user'));
}