Wie synchronisiere ich ModelRelationships mit zusätzlichen Pivot-Feldern in Laravel?

DDD
Freigeben: 2024-10-19 17:58:30
Original
211 Leute haben es durchsucht

How to Sync ModelRelationships with Additional Pivot Fields in Laravel?

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

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

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

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

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!

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
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!