Montage/Demon
Eloquent bietet außerdem einige zusätzliche Hilfsmethoden, um die Arbeit mit verwandten Modellen komfortabler zu gestalten. Stellen wir uns zum Beispiel vor, dass ein Benutzer viele Rollen haben kann und eine Rolle viele Benutzer haben kann. Um eine Rolle an einen Benutzer an, indem einen Datensatz in der Zwischentabelle eingefügt, dass die Modelle verbindet, verwenden, um die Befestigung Methode:
$user = App\User::find(1);
$user->roles()->attach($roleId);
Wenn eine Beziehung zu einem Modell angebracht wird, man kann auch eine Reihe von zusätzlichen Daten übergeben, um werden in den Zwischen Tabelle eingefügt:
$user->roles()->attach($roleId, ['expires' => $expires]);
Sie können auch Sync verwenden, wenn Sie alte Rollen entfernen möchten, und halten nur die neuen Sie Befestigung jetzt
$user->roles()->sync([1 => ['expires' => $expires], 2 => ['expires' => $expires]);
Das Standardverhalten kann geändert werden, indem ein 'false' als zweites Argument übergeben wird. Dies wird die Rollen mit IDs 1,2,3 anhängen, ohne die bestehenden Rollen zu beeinflussen.
In diesem Modus verhält sich sync ähnlich wie attach.
$user->roles()->sync([1 => ['expires' => $expires], 2 => ['expires' => $expires], false);
Referenz: https://laravel.com/docs/5.4/eloquent-relationships
Die Antwort unten ruhig nicht hat mich durch .. könnten Sie bitte Ihre Lösungen auf diese Stelle? Vielen Dank! – Evis