【问题标题】:Laravel routes with entrustLaravel 带委托的路由
【发布时间】:2016-10-02 06:59:24
【问题描述】:

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

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

我希望它是由文件 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/”只有当“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 是否必须添加一些额外的安全性?

【问题讨论】:

    标签: php laravel entrust


    【解决方案1】:

    如果您使用entrust,对于您希望允许特定roles 访问的所有routes,您只需将其放入组中,这样就可以完成工作,话虽如此,这里是如何它看起来像,

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

    【讨论】:

    • 编辑了问题,你能看到吗?
    • 我应该向控制器添加一些东西吗?
    • 你不需要在控制器中添加任何东西
    猜你喜欢
    • 2017-11-22
    • 2017-01-31
    • 2018-05-11
    • 2013-09-20
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多