Laravel + ロールを持つシードユーザー用の Spatie ロールプラグイン、ロールが割り当てられていない
<p>Laravel 9 の場合
ユーザーにロールを追加してみました</p>
<p>Spatie はエラーなしですべてを処理しましたが、データベースではロールとユーザーの関係がテーブル「model_has_role」のモデルに表示されません</p>
<p><code>似たようなキャラクターを作成しました</code></p>
<pre class="brush:php;toolbar:false;">$roleName = 'MyRole';
$guardName = 'myGuard';
$roleObj = Role::create(['guard_name' => $guardName, 'name' => $roleName]);</pre>
<p><code>次に、ユーザーを作成します (例: </code></p>)。
<pre class="brush:php;toolbar:false;">$user = new User($userDatas);</pre>
<p><code>入力する必要があるすべてのデータをモデルから収集しました</code></p>
<pre class="brush:php;toolbar:false;">$arrayWithUsersData = [];
foreach($users として $user)
{
if($users !== NULL)
{
$arrayWithUsersData[] = $user->getAttributes();
}
}</pre>
<p><code>この後、すべてのユーザーを一度にデータベースに挿入しようとしたため、</code></p> を使用しました。
<pre class="brush:php;toolbar:false;">DB::table('users')->insert($arrayWithUsersData);</pre>
<p>最後に、foreach $users でロールを割り当てる可能な方法を試してみました。
いいね: </p>
<pre class="brush:php;toolbar:false;">$user->assignRole($roleName);
$user->assignRole($roleName, $guardName);
$user->assignRole([$roleName, $guardName]);
$user->assignRole($myRole);
$user->assignRole($myRole, $guardName);
$user->assignRole([$myRole, $guardName]);
$user->syncRoles($myRole);
$user->syncRoles($myRole, $guardName);
$user->syncRoles([$myRole, $guardName]);</pre>
<p>エラーは表示されませんが、関係は作成されません</p>