Laravel 有委托的路线

Laravel routes with entrust

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

创建您要访问的管理面板 "permissions" == "admin - panel"

我希望它是由文件完成的 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);
    }
}

routes.php

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

}]);

我试了很多方法,还是不行。任何人都可以建议如何设置文件“routes.php”以访问“管理面板/”仅当 "permissions" == "admin-panel"

--编辑--

当我使用此方法时出现错误:

Route::group(['middleware' => ['Entrust']], function () {
    //put your routes here
    Route::get('/admin', 'Admin\AdminController@index');
});

Pipeline.php 第 136 行中的错误异常:call_user_func_array() 期望参数 1 是有效的回调,class 'Zizaco\Entrust\EntrustFacade' 没有方法 'handle'

--edit2--

['middleware' => ['permission:NAME']]

现在我明白了:)

Contoller 是否必须添加一些额外的安全性?

如果您正在使用 entrust,对于您想要允许特定 roles 访问的所有那些 routes,您只需将其放入组中即可工作,据说,这是它的样子,

Route::group(['middleware' => ['add roles name here']], function () {
  //put your routes here
});