【发布时间】:2020-08-31 06:25:38
【问题描述】:
我有这样的路线:
Route::get('users/{type}', ['as'=>'users.index', 'uses'=>'UserController@index', 'middleware' => ['can:user-index']])->where('type', '(members|enquiries)');
这里可以根据路由参数类型使用动态中间件吗?
如果类型是查询,那么中间件应该是'can:enquiries-index',类似的成员是'can:members-index'。
我知道这可以通过授权方法在控制器功能中完成,但我只在路由文件中使用所有授权。所以只想把这个留在这里。
我正在使用 Laravel Gates 定义来授权路由:
在 AuthServiceProvider@boot 中
Gate::before(function ($user, $ability) {
$permission = Permission::where('slug', $ability)->first();
return $user->hasPermissionTo($permission);
});
Laravel 版本:7.9.2
PHP 版本:7.2
【问题讨论】: