在 laravel 5.6 中找不到 Trait 'App\HasRoles' 错误
Posted
技术标签:
【中文标题】在 laravel 5.6 中找不到 Trait \'App\\HasRoles\' 错误【英文标题】:Trait 'App\HasRoles' not found error in laravel 5.6在 laravel 5.6 中找不到 Trait 'App\HasRoles' 错误 【发布时间】:2019-03-08 00:26:54 【问题描述】:我尝试通过 laravel 5.6 角色权限系统
当我尝试使用默认身份验证(php artisan make:auth)注册时,我收到此错误
"Symfony\Component\Debug\Exception\FatalErrorException (E_UNKNOWN) 特征 'App\HasRoles' 未找到"
这是我的模型 user.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
use Notifiable;
use HasRoles;
protected $guard_name = 'web';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
【问题讨论】:
【参考方案1】:我猜你正在使用 Spatie Laravel 权限包。
如果是这样,您需要像这样导入类:
use Spatie\Permission\Traits\HasRoles;
【讨论】:
感谢它运行良好,我对这个 spatie 包非常陌生【参考方案2】:运行此命令
作曲家安装
【讨论】:
【参考方案3】:试试这个。导入 HasRoles 包如下;
use Spatie\Permission\Traits\HasRoles;
【讨论】:
【参考方案4】:该特征没有被导入使用。如果你和我一样使用 PhpStorm,点击 HasRoles,然后按住alt
键并点击enter
,选择import
击中enter
键,然后特征将被导入。您可以使用这些快捷方式进行其他导入,例如导入模型。
【讨论】:
【参考方案5】:composer 需要 spatie/laravel-permission 安装这个 composer 然后它就可以工作了。因为你已经复制了 laravel 文件,但不是全部,所以安装它。它适用于我的项目
【讨论】:
【参考方案6】:代码中的 use Spatie\Permission\Traits\HasRoles 行需要包含 Spatie/Laravel-permission 包才能工作。
步骤
-
运行 'composer 需要 spatie/laravel-permission'
运行作曲家安装
那么你的代码应该可以工作了
【讨论】:
以上是关于在 laravel 5.6 中找不到 Trait 'App\HasRoles' 错误的主要内容,如果未能解决你的问题,请参考以下文章
将 mysql 从 5.6 升级到 5.7 后“在用户表中找不到任何匹配的行”
在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”