2016-09-15 2 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.

Я думаю, что проблема заключается в том, что вы используете Route::resource, согласно documentation, он заполняет ваши маршруты заранее заданными обычно полезными конечными точками для CRUD.

Если вы хотите больше мощности над параметрами, я предлагаю вам перезаписать некоторые маршруты, накладывая линии маршрутизации прямо перед вашим Route::resource.

Обычно я стараюсь, чтобы удалить маршруты из маршрута ресурсов с использованием only или except, чтобы уменьшить их, как:

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

Я не думаю, что было бы еще можно добавить больше (не в той же строке, Я имею в виду).

TLDR: Не используйте Route::resource() если вам нужны индивидуальные маршруты, использовать Route::get() и Route::post() вместо этого, добавляя параметры маршрута в фигурных скобках, как

Route::get('/users/{username}', '[email protected]');