【发布时间】:2017-06-12 22:09:48
【问题描述】:
这就是问题所在。我在不同的方法和不同的控制器中重复了下一个代码。
if (Gate::denies('admin-role')) {
return redirect()->action('HomeController@index')->with('warning','No');
}
如果有一天我决定更改操作路线或消息,我不想遍历所有方法并更改它。有没有办法可以将此代码放在某个部分并指定将要应用的方法?
我尝试使用这样的中间件:
$this->middleware('can:admin-role', ['only' => 'index', 'create']);
但我不知道如何自定义重定向。
使用自定义中间件我不知道这是否是个好主意,因为我必须为每个角色(用户、管理员、超级管理员、混合角色等)创建一个中间件。
【问题讨论】:
-
在中间件中,可以不返回$next()响应,而是返回redirect()->route('my.route')
标签: authentication laravel-5 middleware dry