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
來解析用戶。如果不是,那麼它將嘗試將該值與用戶表上的用戶名列進行匹配。
希望這會有所幫助。