Laravel の問題: hasMany 関係レコードの更新の問題
<p>ブランド モデルと hasMany 関係を持つユーザー モデルがあり、ユーザーのブランドを正しく更新できません。 </p>
<p>ユーザーがテキストフィールドに自分のブランドを入力/削除/更新できるフォームがあります。ユーザーがブランドを入力または編集した後にユーザーのブランドを更新するために現在使用している方法は、関連付けられている既存のブランドをすべて削除することです。 user を使用して、値をループし、ブランド モデルを作成して、「saveMany」を実行します...しかし、追加するときに制約の競合が発生するようです...これを行うより良い方法があるかどうか疑問に思っています。 /p>
<p>私の <code>User</code> モデルには次のようなものがあります;</p>
<pre class="brush:php;toolbar:false;">パブリック関数brand()
{
return $this->hasMany('Brands::class');
}
</pre>
<p>次に、コントローラーにブランドを更新する次のコードがあります;</p>
<pre class="brush:php;toolbar:false;">$user->brands()->delete();
foreach ($request['brands'] as $brand) {
$brandArray[] = 新しいブランド([
'名前' => $brand['名前']、
'評価' => $brand['評価'],
]);
}
!empty($brandArray) && $user->brands()->saveMany($brandArray);
</pre>
<p>もっと良い方法はありますか? </p>