2016-12-08 17 views

回答

2

使用::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来解析用户。如果不是,那么它将尝试将该值与用户表上的用户名列进行匹配。

希望这会有所帮助。