我正在设置一个新的laravel安装,并且在使用uuid作为id时遇到了隐式路由模型绑定的问题。
我的路线:
Route:group(['prefix' => 'admin'], function(){
Route:resource('users', 'Admin\UserController');
});
Admin \ UserController的show方法:
public function show(App\User $user) {
dd($user);
}
所以,当我点击网址my.app/admin/users/long-uuid-string-here
时,我希望看到用户信息,但我得到一个空的用户对象。
当我将以下内容添加到RouteServiceProvider时,它按预期工作:
$router->model('admin/users', \App\User::class);
我缺少什么,隐式模型绑定是否期望整数?是因为它在路线组或其他东西?
是!数据库中存在id,我正在使用laravel 5.2
答案 0 :(得分:0)
由于您使用的是资源路由,因此路由将类似于:
contact
注意Route::get('admin/users/{users}', 'Admin\UserController@show');
变量。它是复数。所以在你的show方法中:
改变这个:
{users}
到
public function show(App\User $user) {
dd($user);
}
这有点奇怪,但问题就在于此。