Heim >Backend-Entwicklung >PHP-Tutorial >Wie synchronisiere ich ein Array mit mehreren Pivot-Feldern in Laravel?
Synchronisieren eines Arrays mit zusätzlichen Pivot-Feldern in Laravel
In Laravel ermöglicht Ihnen die sync()-Methode die Verwaltung der Many-to- viele Beziehungen zwischen Modellen. Während die Dokumentation Beispiele für die Synchronisierung einer einzelnen Pivot-Zeile bereitstellt, geht sie nicht explizit darauf ein, wie benutzerdefinierte Pivot-Daten mehreren synchronisierten Zeilen zugeordnet werden.
Die Lösung besteht darin, für jedes verwandte Modell, das Sie verwenden, ein Array von Pivot-Daten anzugeben möchte synchronisieren. Durch die Bereitstellung eines Schlüssel-Wert-Paares, bei dem der Schlüssel die ID des zugehörigen Modells und der Wert ein Array von Pivot-Feldwerten ist, können Sie jeder synchronisierten Zeile zusätzliche Pivot-Daten zuordnen.
Betrachten Sie beispielsweise ein Benutzermodell das eine Viele-zu-Viele-Beziehung zu einem Vorbild hat. Die Pivot-Tabelle für diese Beziehung verfügt über ein Ablauffeld. Wenn Sie drei Rollen mit jeweils einem anderen Ablaufwert mit dem Benutzer synchronisieren möchten, können Sie dies wie folgt tun:
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], 3 => ['expires' => null], ]);</code>
Dadurch wird der Benutzer mit drei Rollen-IDs synchronisiert und die angegebenen Ablaufwerte zugeordnet mit jeder Zeile in der Pivot-Tabelle.
Das obige ist der detaillierte Inhalt vonWie synchronisiere ich ein Array mit mehreren Pivot-Feldern in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!