繁体   English   中英

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

[英]Laravel 5.2 implicit route model binding using uuid string as id

我正在安装新的laravel安装,使用uuid作为id时,隐式路由模型绑定出现了问题。

我的路线:

Route:group(['prefix' => 'admin'], function(){
    Route:resource('users', 'Admin\UserController');
});

Admin \\ UserController的show方法:

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

因此,当我点击URL my.app/admin/users/long-uuid-string-here我希望看到用户信息,但会得到一个空的User对象。

当我将以下内容添加到RouteServiceProvider时,它可以按预期工作:

$router->model('admin/users', \\App\\User::class);

我缺少什么吗,隐式模型绑定是否期望一个整数? 是因为它在路由组中还是其他?

是! 该ID存在于数据库中,并且我正在使用laravel 5.2

由于您正在使用资源路由,因此路由将类似于:

Route::get('admin/users/{users}', 'Admin\\UserController@show');

注意{users}变量。 它是复数的。 因此,在您的显示方法中:

改变这个:

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

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

有点奇怪,但这就是问题所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM