Heim  >  Artikel  >  Backend-Entwicklung  >  Wie synchronisiere ich ModelRelationships mit zusätzlichen Pivot-Feldern in Laravel?

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

DDD
DDDOriginal
2024-10-19 17:58:30213Durchsuche

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>

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!

Stellungnahme:
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