0
我试图制作此REST设计,但遇到了问题。Laravel 5.3 Route ::资源,其参数在实际资源参数之前
我有一个名为list
我想/list
之前,它有像这样{username}/list
动态参数和有CRUD选项,如编辑{username}/list/{id}/edit
等资源。
我试图制作此REST设计,但遇到了问题。Laravel 5.3 Route ::资源,其参数在实际资源参数之前
我有一个名为list
我想/list
之前,它有像这样{username}/list
动态参数和有CRUD选项,如编辑{username}/list/{id}/edit
等资源。
使用::resource
方法,你可以用你的模型之间的.
规定的分层路由模式,例如:
Route::resource('user.list', 'ListController');
这将产生这样的事情:
/user/{user}/list/{list}
但是你想有一个用户名 - 这很好,我们只需要添加一些明确的模型绑定在您的App\Providers\RouteServiceProvider
Route::bind('user', function($value)(){
if(is_numeric($value)) {
return User::find($value);
} else {
return User::where('username', $value)->first();
}
});
如果$值是数字,那么添加此explicit model binding
将首先尝试通过dependency injection
来解析用户。如果不是,那么它将尝试将该值与用户表上的用户名列进行匹配。
希望这会有所帮助。