【问题标题】:BadMethodCallException Call to undefined method App\Models\User::hasAnyRole()BadMethodCallException 调用未定义的方法 App\Models\User::hasAnyRole()
【发布时间】:2021-06-24 05:29:10
【问题描述】:

我正在使用 Laravel-Permissions 并写在 rotes\web.php:

Route::group(['middleware' => ['role:admin']], function () {
    Route::get('/admin', function () {
        return "Test";
    });
});

我在 app\Http\Kernel.php 中添加了:

protected $routeMiddleware = [
    // ...
    'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
    'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
    'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];

错误:

【问题讨论】:

  • 请分享您的用户模型

标签: php laravel laravel-permission laravel-ui


【解决方案1】:

您忘记包含角色特征

use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles; //this line

    // ...
}

【讨论】:

    【解决方案2】:

    确保您的 User 模型使用 Spatie\Permission\Traits\HasRoles 特征。

    <?php
    
    use Spatie\Permission\Traits\HasRoles;
    
    class User
    {
        use HasRoles;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2021-06-21
      • 2023-02-06
      • 2020-12-29
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多