同一个Laravel路线可以成为多个组的一部分吗?

时间:2018-06-13 16:39:09

标签: laravel filter laravel-4 permissions routes

我在Laravel 4.2中遇到了一些相当奇怪的行为。我有一堆基于权限的路由组,例如

Route::group( [ "before" => "filter_can_access_site"] , function() { ...
Route::group( [ "before" => "filter_can_edit"] , function() { ...

在某些情况下,我想在两个组中放置相同的路线,例如一个“获取”请求来显示数据。

当我使用稍微不同的语法来做同样的事情时,我发现这是有效的,例如

Route::group( [ "before" => "filter_can_access_site"] , function() {
    Route::get( "scripts/{id}", "ScriptsController@show" ); 
    ...
Route::group( [ "before" => "filter_can_edit"] , function() { ...
    Route::resource( "scripts", "ScriptsController", array("only" => array( "show" )));

但是如果我在两个组中使用相同的语法,则第一组中的路由将失败过滤器。

对此有解释吗?我应该避免在多个组中放置相同的路线吗?我可以这样做......但是为什么这个奇怪的语法解决方法甚至存在呢?

1 个答案:

答案 0 :(得分:0)

您可以嵌套这样的组:

Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
    // Your routes

    Route::group(['prefix' => 'commissions'], function()

        // Get request would go here.

    }); 
});