P粉2168079242023-09-06 19:18:57
問題是,如果模型存在,則 allocateRole 和syncRole 中的 spatie 有效
我的意思是 Laravel 模型具有「存在」屬性
vendor\spatie\laravel-permission\src\Traits\HasRoles.php 中有一些來自 allocateRole 函數的程式碼
syncRoles 是 allocateRole 的包裝器
$model = $this->getModel(); if ($model->exists) { $this->roles()->sync($roles, false); $model->load('roles'); } else { $class = \get_class($model); $class::saved( function ($object) use ($roles, $model) { if ($model->getKey() != $object->getKey()) { return; } $model->roles()->sync($roles, false); $model->load('roles'); } ); }
因此 DB::table('users')->insert($arrayWithUsersData);
不要更改模型中的參數“exists”,因為它適用於原始資料
所以我必須切換為一一創建用戶並保存它們
$user = new User($userData); $user->save();
現在 Spatie 要創造應有的關係。