Laravel-Problem: Problem beim Aktualisieren von hasMany-Beziehungsdatensätzen
<p>Ich habe ein Benutzermodell, das eine hasMany-Beziehung mit einem Markenmodell hat, und ich habe Probleme, die Marke des Benutzers korrekt zu aktualisieren. </p>
<p>Ich habe ein Formular, mit dem Benutzer ihre eigene Marke in ein Textfeld eingeben/entfernen/aktualisieren können. Die Methode, die ich derzeit verwende, um die Marke eines Benutzers zu aktualisieren, nachdem der Benutzer die Marke eingegeben oder bearbeitet hat, besteht darin, alle vorhandenen Marken zu löschen mit dem Benutzer, dann die Werte durchlaufen, das Markenmodell erstellen, dann „saveMany“ ... aber ich scheine beim Hinzufügen einen Einschränkungskonflikt zu bekommen ... Ich frage mich, ob es einen besseren Weg gibt, dies zu tun < /p>
<p>Mein <code>Benutzer</code>-Modell hat Folgendes;</p>
<pre class="brush:php;toolbar:false;">public function brands()
{
return $this->hasMany('Brands::class');
}
</pre>
<p>Dann habe ich in meinem Controller den folgenden Code, um die Marke zu aktualisieren;</p>
<pre class="brush:php;toolbar:false;">$user->brands()->delete();
foreach ($request['brands'] as $brand) {
$brandArray[] = neue Marke([
'name' => $brand['name'],
'rating' => $brand['rating'],
]);
}
!empty($brandArray) && $user->brands()->saveMany($brandArray);
</pre>
<p>Gibt es einen besseren Weg? </p>