【问题标题】:Laravel 5.2 With Entrust GroupRoutes Kernel.phpLaravel 5.2 与 Entrust GroupRoutes Kernel.php
【发布时间】:2016-10-19 15:44:27
【问题描述】:

我正在尝试根据用户角色添加 Route::group()。

Route::group(['middleware' => ['role:myrole']], function () {
    //Some Routes
}

我收到此错误...

缺少 Zizaco\Entrust\Middleware\EntrustRole::handle() 的参数 3

我有 Entrust 的默认安装。有人告诉我,我需要在“$middlewareGroups”中的 Kernel.php 文件中添加一两行

线条是什么?

【问题讨论】:

    标签: laravel middleware entrust


    【解决方案1】:

    我认为你正在寻找这些:

    'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
    'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
    'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
    

    注意,我把它们放在$routeMiddleware

    然后将您认为适合的角色/权限分配给组或个人路线。但将它们存储在$routeMiddleware 中。例如:

    Route::group(['middleware' => ['role:admin|owner']], function () { .. });

    【讨论】:

    • 我想过这个问题,但对我来说似乎很奇怪,默认情况下安装不会那样做。我会试一试,看看会发生什么。
    • 文档中有关于设置它的内容。没那么奇怪。 Composer 包无法自动安装/添加这些行(您也不需要)。
    • 如果它适合您,请记住接受答案。我知道这是你的第一篇文章 - 欢迎!
    • 我加了,没用。我已经查看了文档中的所有位置以获取有关此信息的信息。我找到的唯一文档是 $routeMiddleware 设置。我找不到任何与 $middlewareGroups 相关的内容。
    • 老兄...把它放在 $routeMiddleware 设置中。您需要手动将中间件分配给组或特定路由。即Route::group(['middleware' => ['role:admin|owner']], function () { .. });
    【解决方案2】:

    嗯,没有发现“正确”的方法。所以我使用了一种解决方法。我在刀片文件中使用了@role。对我来说,这是一个 hack,但它有效。

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 2016-06-27
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 2016-08-30
      相关资源
      最近更新 更多