laravel - Laravel 8 包(角色和权限 jeremykenedy/laravel-roles)与 MongoDB UserTableSeeder 不工作
问题描述
我在 Laravel 8 中安装了角色和权限(jeremykenedy/laravel-roles)包 ,并且我使用了数据库 MongoDB。我在用户表播种器中有问题。桌上播种机的其余部分工作正常。我显示了以下屏幕截图错误
我在下面显示了用户表播种器代码
use Illuminate\Database\Seeder;
use jeremykenedy\LaravelRoles\Models\Permission;
use jeremykenedy\LaravelRoles\Models\Role;
use App\models\User;
class UserTableSeeder extends Seeder
{
public function run()
{
if (User::where('name', '=', 'Admin')->first() === null) {
$adminRole = Role::where('slug', '=', 'admin')->first();
$newUser = User::create([
'name' => 'Admin',
'email' => 'admin@gmail.com',
'password' => bcrypt('12345678'),
'role' => 'admin'
]);
$newUser->attachRole($adminRole);
$permissions = Permission::all();
foreach ($permissions as $permission) {
$adminRole->attachPermission($permission);
}
}
}
}
我已经在下面显示了用户模型代码
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Notifications\Notifiable;
use jeremykenedy\LaravelRoles\Traits\HasRoleAndPermission;
use Laravel\Sanctum\HasApiTokens;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Eloquent implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract
{
use HasApiTokens, HasFactory, Notifiable;
use Authenticatable, Authorizable, CanResetPassword;
use HasRoleAndPermission;
/**
* The attributes that are mass assignable.
*
* @var string[]
*/
protected $connection = 'mongodb';
protected $collection = 'users';
protected $primaryKey = '_id';
protected $fillable = [
'name',
'email',
'password',
];
}
解决方案
推荐阅读
- java - 我的 java bmi 计算器给出了相同的答案
- javascript - 尝试使用异步功能时,对象作为反应子无效
- css - 如何配置更漂亮以禁止 !important 在(s)css文件中?
- javascript - 如何将货币格式添加到结果
- asp.net - ASP.NET 发出过期的身份验证 Cookie
- vue.js - 编译单个 vue 组件
- android - 如何在Android中将微调器重置为默认值?
- spring - Spring WebFlux + Kotlin 响应处理
- angular - 在 ng2-charts 条形图中,最小值是不可见的
- oracle - 使用函数操作进行 Oracle 排序