Wie weise ich beim Synchronisieren eines Arrays zusätzliche Pivot-Tabellenwerte in Laravel zu?

Mary-Kate Olsen
Freigeben: 2024-10-19 17:52:02
Original
784 Leute haben es durchsucht

How to Assign Additional Pivot Table Values in Laravel when Syncing an Array?

Synchronisieren eines Arrays mit zusätzlichen Pivot-Feldern in Laravel

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?

Pivot-Werte für mehrere Modelle zuweisen

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>
Nach dem Login kopieren

Mit dieser Syntax können Sie Pivot-Werte für jedes verwandte Modell mithilfe der Array-Schlüssel-Wert-Paare angeben.

Beispiel mit Dynamic Pivot-Werte

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!