我尝试在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\PlaceController@index"
"controller" => "App\Http\Controllers\Dashboard\PlaceController@index"
"namespace" => "App\Http\Controllers"
"prefix" => null
"where" => []
]
答案 0 :(得分: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}', 'UsersController@show');