Laravel 5.2使用uuid字符串作为id隐式路由模型绑定

时间:2016-03-18 15:22:52

标签: php laravel laravel-5.2

我正在设置一个新的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

1 个答案:

答案 0 :(得分:0)

由于您使用的是资源路由,因此路由将类似于:

contact

注意Route::get('admin/users/{users}', 'Admin\UserController@show');变量。它是复数。所以在你的show方法中:

改变这个:

{users}

public function show(App\User $user) {
    dd($user);
}

这有点奇怪,但问题就在于此。