このRESTデザインを作成しようとしていますが、問題があります。Laravel 5.3実際のリソースパラメータより前のパラメータを持つルート::リソース
私はそれがとても{username}/list
のような動的パラメータを持っているように編集{username}/list/{id}/edit
などCRUDのオプションを持っている/list
前にリソースが、私が欲しいlist
と呼ばれています。
このRESTデザインを作成しようとしていますが、問題があります。Laravel 5.3実際のリソースパラメータより前のパラメータを持つルート::リソース
私はそれがとても{username}/list
のような動的パラメータを持っているように編集{username}/list/{id}/edit
などCRUDのオプションを持っている/list
前にリソースが、私が欲しいlist
と呼ばれています。
例えば、あなたがあなたのモデル間.
を使用して、階層のルートパターンを決定することができ::resource
メソッドを使用して:あなたが欲しいしかし
/user/{user}/list/{list}
:これは、このような何かを生成します
Route::resource('user.list', 'ListController');
ユーザー名を取得することは可能ですが、これは明示的なモデルバインディングを追加するだけです。App\Providers\RouteServiceProvider
Route::bind('user', function($value)(){
if(is_numeric($value)) {
return User::find($value);
} else {
return User::where('username', $value)->first();
}
});
これを追加すると、dependency injection
より最初にID
でユーザーを解決しようとします。$値が数値の場合は、を解決します。そうでない場合は、userテーブルのusernameカラムと値を一致させようとします。
うまくいけば、これが役に立ちます。