【问题标题】:define custom array in route using Laravel 8使用 Laravel 8 在路由中定义自定义数组
【发布时间】:2021-11-16 20:19:29
【问题描述】:

在之前的 Laravel 5 版本中,我们在多个中间件的路由中定义了额外的或自定义的数组,如下所示:

Route::get('/user_list',[
    'uses'=>'UserController@index',
    'as' =>'user_list',
    middleware' => ['auth','roles'],
    'roles' => ['Administrator', 'Operator']
   ]);

但是,在 Laravel 8 中它给出了错误,我定义如下: 因为它在“使用”上给出错误。 但以下语法不属于 Laravel 8。

Route::get('/user_list',array(
        'uses'=>'App\Http\Controllers\UserController@index',
        'as' =>'user_list',
        'middleware' => ['auth','roles'],
        'roles' => ['Administrator', 'Operator'])
);

我的主要问题是根据 Laravel 8 在路由中定义自定义数组。

Route::get('user_list',[UserController::class, 'index'])
    ->middleware(['auth','roles'])
    ->name('user_list');

上面的代码工作正常,但我需要定义一个自定义数组来检查角色 'roles' => ['Administrator', 'Operator']

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    尝试关注

    Route::get('user_list',[UserController::class, 'index'])
        ->middleware(['auth','roles','role:Administrator|Operator'])
        ->name('user_list');
    

    【讨论】:

    • 您绑定在中间件数组中,我想传递单独的数组以便与我的中间件类进行比较。那是行不通的。
    • 这个解决方案对我有用,因为我必须分解它并分离选项以检查角色。如果有人可以让我知道定义另一个数组/参数或任何东西,那就太好了
    【解决方案2】:

    您可以简单地定义所有路由并像这样使用它

    $roles= ['uses'=>'App\Http\Controllers\UserController@index',
            'as' =>'user_list',
            'middleware' => ['auth','roles'],
            'roles' => ['Administrator', 'Operator']];
    
    Route::get('/user_list', function () use ($roles) {   
        return anything;
    });
    

    【讨论】:

    • 语法与 Laravel 5 相同
    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 2018-10-04
    • 2021-09-04
    • 2023-03-16
    • 2021-03-28
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多