BadMethodCallException 调用未定义的方法 App\Models\User::hasAnyRole()
Posted
技术标签:
【中文标题】BadMethodCallException 调用未定义的方法 App\\Models\\User::hasAnyRole()【英文标题】: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,
];
错误:
【问题讨论】:
请分享您的用户模型 【参考方案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;
【讨论】:
以上是关于BadMethodCallException 调用未定义的方法 App\Models\User::hasAnyRole()的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 单元测试错误:BadMethodCallException:调用未定义的方法 Illuminate\Database\Query\Builder::make()
删除()上的 Laravel BadMethodCallException
Laravel Artisan 迁移 [BadMethodCallException]
BadMethodCallException 方法 orderBy 不存在
BadMethodCallException : 方法 Illuminate\Database\Query\Builder::offers 不存在