2016-09-15 212 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之前。

通常我倾向于使用onlyexcept资源路线删除路由,以减少他们像:

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

,我不认为这将是甚至可以添加更多的(而不是在同一直线上,我的意思是)。

TLDR:如果您需要定制的路线,不要使用Route::resource(),用Route::get()Route::post()相反,在大括号中添加的路由参数,如

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