2016-12-08 35 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來解析用戶。如果不是,那麼它將嘗試將該值與用戶表上的用戶名列進行匹配。

希望這會有所幫助。