Mit der Laravel sync()-Methode können Sie die Beziehung eines Modells mit einem Array verwandter IDs synchronisieren. Was aber, wenn Sie diesen IDs zusätzliche Pivot-Tabellenwerte zuordnen müssen?
Das Dokumentationsbeispiel zeigt nur, wie Pivot-Werte für ein einzelnes Modell zugewiesen werden. Um Werte für mehrere Modelle zuzuweisen, verwenden Sie die folgende Syntax:
<code class="php">$user->roles()->sync([ 1 => ['expires' => true], 2 => ['expires' => false], ... ]);</code>
Mit dieser Syntax können Sie Pivot-Werte für jedes verwandte Modell mithilfe der Array-Schlüssel-Wert-Paare angeben.
Stellen Sie sich ein Szenario vor, in dem Sie Formulareingaben verarbeiten, um einer Veranstaltung Redner zuzuweisen. Die Eingabe ist ein Array von Sprecher-IDs und Sie müssen die Spalte „is_speaker“ in der Pivot-Tabelle auf „true“ setzen.
So können Sie dies erreichen:
<code class="php">$speakers = (array) Input::get('speakers'); // related ids $pivotData = array_fill(0, count($speakers), ['is_speaker' => true]); $syncData = array_combine($speakers, $pivotData); $user->roles()->sync($syncData);</code>
Durch die Verwendung von array_fill() und array_combine() können Sie ein Array von Pivot-Werten mit den gewünschten Schlüssel-Wert-Paaren erstellen und diese dann mit der Beziehung des Modells synchronisieren.
Das obige ist der detaillierte Inhalt vonWie weise ich beim Synchronisieren eines Arrays zusätzliche Pivot-Tabellenwerte in Laravel zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!