如何在路由Laravel中添加paraeters?

时间:2016-09-15 19:47:32

标签: laravel laravel-5.2 laravel-5.3

我尝试在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" => []
]

1 个答案:

答案 0 :(得分:1)

您可以使用工匠命令查看您拥有的路线,并php artisan route:list

我认为这里的问题是你正在使用Route::resource,因为documentation它使用预定义的通常有用的CRUD端点填充你的路线。

如果您希望获得更多参数,我建议您覆盖一些将路由线放在Route::resource之前的路线。

通常我倾向于使用onlyexcept从资源路线中删除路线,以减少它们:

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

我认为甚至不可能添加更多(不是在同一行,我的意思)。

TLDR:如果您需要自定义路由,请不要使用Route::resource(),而是使用Route::get()Route::post(),在大括号中添加路由参数,例如

Route::get('/users/{username}', 'UsersController@show');