1

我尝试委托我的 Laravel 代码。此时我有用户、权限和角色。

创建要访问“权限”==“管理-面板”的管理面板

我希望它是由文件 routes.php 完成的

我的文件:Middleware/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);
    }
}

路由.php

Route::get('admin-panel', ['middleware' => ['auth', 'Entrust'], function () {

}]);

我尝试了很多方法,但仍然不起作用。任何人都可以建议如何设置文件“routes.php”来访问“admin-panel/”只有当“permissions”==“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 我是否必须添加一些额外的安全性?

4

1 回答 1

1

如果您正在使用entrust,对于所有routes您希望允许特定访问的人roles,您只需将其放在组中,这样就可以完成工作,据说,这就是它的样子,

Route::group(['middleware' => ['add roles name here']], function () {
  //put your routes here
});
于 2016-06-02T13:47:06.013 回答