Hinzufügen weiß, dass ich die Frage Titel ein bisschen trüb ist, aber hier ist, was ich versuche zu tun: Ich habe eine Liste der Gruppeneinen bedingten Wert auf zusätzliche Spalte in Pivot-Tabelle von Array in Laravel
bin abgerufen werden, Ein Benutzer gehört zu einer Drittanbieter-API. In einigen Fällen ist der Benutzer ein "Administrator" für eine Gruppe und manchmal ein "Mitglied". Besonderheiten beiseite, ich rufe eine Methode auf meiner API-Klasse von meinem Controller, die die API trifft, ruft die Gruppen des Benutzers, entscheidet, ob sie ein 'Admin' sind oder nicht und gibt dann ein Array von Arrays mit jeder Gruppe Informationen einschließlich a 'role' Schlüssel, der angibt, ob sie ein 'admin' sind oder nicht. Also meine zurückgegebene Array etwas wie folgt aussieht:
[
0 => [
'unique_id' => 1243657,
'name' => 'Group1',
'city' => 'Bluesville',
'state' => 'IN',
'role' => 'admin'
],
1 => [
'unique_id' => 4324567,
'name' => 'Group2',
'city' => 'New Curtsbourough',
'state' => 'WI',
'role' => 'member'
],
2=> [
'unique_id' => 87463652,
'name' => 'Group3',
'city' => 'Samsonite',
'state' => 'MN',
'role' => 'member'
]
]
Nun, ich brauche diese Gruppen zu nehmen und speichern sie in der Datenbank, die ich durch die Überprüfung zuerst mache, dass die Gruppe nicht in der Datenbank vorhanden ist, dann fügen Sie es bei Bedarf hinzu. Natürlich verlasse ich die Rolle, da sie nur für den aktuellen Benutzer relevant ist.
Als nächstes muss ich den aktuellen Benutzer mit diesen Gruppen, die gerade abgerufen wurden, verbinden. Ich habe eine Pivot-Tabelle eingerichtet, die derzeit die user_id und group_id enthält.
Die Frage ist, wie man damit am besten umgehen kann. Bevor ich entschied, dass ich wissen musste, ob ein Mitglied ein "admin" war oder nicht, ließ ich mir einfach meine "createGroups" -Methode ein Array von Primärschlüsseln zurückgeben und übergab dieses Array an einen Anruf an
$user->groups()->sync($array_of_ids);
Jedoch, mit der zusätzlichen "Rolle" Informationen, ist es nicht so geschnitten und trocken.
Im Grunde habe ich zu diesem Zeitpunkt im Lebenszyklus Zugriff auf ein Array von Gruppen, das ein Feld "Rolle" enthält. Mein Denken sagt, ein 'Rolle'-Feld zur Pivot-Tabelle hinzuzufügen, die dann' user_id ',' group_id 'und' role 'enthalten würde. Das bedeutet, dass ich nicht nur das Array $ groups mit den abgerufenen Gruppen benötige, sondern auch die IDs dieser Gruppen, die zu meiner Datenbank gehören.
Ich könnte etwas arbeiten, aber ich fürchte, es wäre extrem chaotisch und ineffizient.
Gedanken jemand ??