Laravel: Sync() mit zusätzlichen Pivot-Feldern
In Laravel wird die sync()-Funktion verwendet, um eine Modellbeziehung mit einem zu synchronisieren Satz von IDs. Es ist jedoch auch möglich, bei der Synchronisierung zusätzliche Pivot-Felder anzugeben.
Standardverwendung:
Wie in der Laravel-Dokumentation beschrieben, können Sie einen einfachen Satz von IDs synchronisieren so:
<code class="php">$user->roles()->sync([1, 2, 3]);</code>
Synchronisierung mit Pivot-Feldern:
Wenn Sie bestimmte Pivot-Tabellenwerte mit den IDs verknüpfen möchten, können Sie diese als Array angeben:
<code class="php">$user->roles()->sync([ 1 => ['expires' => true] ]);</code>
In diesem Beispiel wird eine einzelne Pivot-Zeile hinzugefügt, wobei das Ablauffeld auf „true“ gesetzt ist.
Mehrere Pivot-Datensätze mit benutzerdefinierten Daten:
An Wenn Sie mehrere Modelle mit benutzerdefinierten Pivot-Daten synchronisieren möchten, können Sie die folgende Syntax verwenden:
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ... ]);</code>
In diesem Beispiel werden zwei Rollen synchronisiert, jede mit ihrem eigenen Ablaufwert.
Beispiel mit Array-Eingabe :
Wenn Sie IDs und Pivot-Daten als Array empfangen, können Sie array_combine() verwenden, um die Synchronisierungsdaten zu erstellen:
<code class="php">$speakers = (array) Input::get('speakers'); // Get related IDs $pivotData = array_fill(0, count($speakers), ['is_speaker' => true]); $syncData = array_combine($speakers, $pivotData); $user->roles()->sync($syncData);</code>
Wenn Sie diese Richtlinien befolgen, können Sie dies tun Synchronisieren Sie Daten effektiv mit benutzerdefinierten Pivot-Feldern in Laravel.
Das obige ist der detaillierte Inhalt vonWie synchronisiere ich ModelRelationships mit zusätzlichen Pivot-Feldern in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!