Laravel在同一条路线上的多个角色

时间:2015-09-14 12:38:15

标签: php laravel-5 laravel-routing laravel-5.1

这是我在Laravel 5.1上userauth角色的路线实施:

Route::group(['prefix' => 'admin', 'middleware' => 'auth:administrator'], function()
{
    $a = 'admin.';
    Route::get('/', ['as' => $a . 'home', 'uses' => 'AdminController@getHome']);
});

Route::group(['prefix' => 'user', 'middleware' => 'auth:user'], function()
{
    $a = 'user.';
    Route::get('/', ['as' => $a . 'home', 'uses' => 'UserController@getHome']);
});

我有user可以注册为merchant的另一个角色,但问题是,如何在不复制代码的情况下实现merchant路由,因为usermerchant使用merchant具有额外功能的类似仪表板。

目前有效的实施是:

Route::group(['prefix' => 'user', 'middleware' => 'auth:merchant'], function()
    {
        $a = 'user.';
        Route::get('/', ['as' => $a . 'home', 'uses' => 'UserController@getHome']);
    });

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该能够使用数组将中间件列表传递到您的路由。

Route::group(['prefix' => 'user', 'middleware' => ['auth:user', 'auth:merchant']], function()
{
    $a = 'user.';
    Route::get('/', ['as' => $a . 'home', 'uses' => 'UserController@getHome']);
});

但是,我不确定这是否会产生一个你希望实现的结果。也许所有这一切只允许路由到属于“用户”和“商家”角色的用户,这可能不是你打算做的。