2016-09-15 4 views
1

私は、リソースのためLaravelルートにパラメータを追加しようとしました:ルーティングのパラレーターを追加する方法Laravel?

Route::resource('place', 'Dashboard\PlaceController', ["parameters" => ["roles" => "Admin"]]); 

それから私は、ルート配列表示:

$actions = $request->route()->getAction(); 
     dd($actions); 

を私はパラメータrolesせずに配列を取得:

array:7 [▼ 
    "middleware" => array:3 [▶] 
    "as" => "place.index" 
    "uses" => "App\Http\Controllers\Dashboard\[email protected]" 
    "controller" => "App\Http\Controllers\Dashboard\[email protected]" 
    "namespace" => "App\Http\Controllers" 
    "prefix" => null 
    "where" => [] 
] 

答えて

1

ありますあなたが持っているルートとそれがphp artisan route:listであることを確認するために使用できる職人のコマンドです。

ここでの問題は、documentationとして、Route::resourceを使用していることです。これは、CRUD用にあらかじめ定義された通常の有用なエンドポイントをルートに埋め込むためです。

より多くのパワーを必要とする場合は、Route::resourceの直前にルーティングラインを置くいくつかのルートを上書きすることをお勧めします。

通常、私はのようにそれらを減らすためにonlyexceptを使用して、リソースのルートからルートを削除する傾向がある:私は(ない同じ行にさらに追加することも可能だろうとは思わない

Route::resource('photo', 'PhotoController', ['only' => [ 
    'index', 'show' 
]]); 

、というのは)。

TLDR:あなたがカスタマイズしたルートを必要とする場合

Route::get('/users/{username}', '[email protected]'); 
のように中括弧でルートパラメーターを追加して、代わりに Route::get()Route::post()を使用し、 Route::resource()を使用しないでください。
関連する問題