我尝试使用我的Laravel代码进行Entrust。 此刻,我有用户,权限和角色。
创建管理员面板,您可以在其中访问“权限”==“admin - panel”
我希望它由文件routes.php
完成我的档案: 中间件/ EntrustMiddleware.php
class EntrustMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Entrust::can('admin-panel')) {
return Redirect::to('home');
}
return $next($request);
}
}
routes.php文件
Route::get('admin-panel', ['middleware' => ['auth', 'Entrust'], function () {
}]);
我尝试了很多方法,但仍然无效。任何人都可以建议如何设置文件“routes.php”访问“管理 - 面板/”只有当“权限”==“admin-panel”
- 编辑 -
当我使用这种方法时,我得到错误:
Route::group(['middleware' => ['Entrust']], function () {
//put your routes here
Route::get('/admin', 'Admin\AdminController@index');
});
Pipeline.php第136行中的ErrorException:call_user_func_array()期望参数1是有效的回调,类'Zizaco \ Entrust \ EntrustFacade'没有方法'handle'
- EDIT2 -
['middleware' => ['permission:NAME']]
现在我明白了:)
Contoller我是否必须添加一些额外的安全性?
答案 0 :(得分:1)
如果您使用entrust
,对于您希望允许特定routes
访问的所有roles
,您只需将其放入群组中即可完成工作,据说,这就是它的样子,
Route::group(['middleware' => ['add roles name here']], function () {
//put your routes here
});