also wo ist das Problem hier?
Sie verwenden firstOrNew
Methode, die zu firstOrCreate
typischerweise ähnlich ist wie folgt vorgehen:
Wählen Sie aus der Datenbank
und wenn nicht vorhanden
legen Sie die angegebenen Daten
im Falle der Verwendung von FirstOrNew, werden Sie ne Ed auf ->save()
, um die Abfrage auszuführen.
so wird es Ihre Daten nicht aktualisieren, wenn vorhanden.
jedoch denke ich, dass Sie nach updateOrCreate
Methode suchen, die zwei Array-Argumente, die erste ist die eingefügten Daten, und wenn vorhanden ist, übernimmt die Funktion die beiden Array-Argument, um Ihre Zeile zu aktualisieren.
Sie können auch auf Situationen stoßen, in denen Sie ein vorhandenes Modell aktualisieren oder ein neues Modell erstellen möchten, wenn keines existiert. Laravel bietet eine updateOrCreate-Methode, um dies in einem Schritt zu tun. Wie die firstOrCreate Methode, bleibt updateOrCreate das Modell, so gibt es keine Notwendigkeit speichern() aufzurufen:
$roleUser = RoleUser::updateOrCreate(
// if not exists, insert the following RoleUser data
['role_id' => $request->Input(['role_id']),'user_id' =>$request->Input(['user_id'])],
// otherwise, update RoleUser set role_id = ?
['role_id' => $request->Input(['role_id'])]
);
So ein 'User' kann man mehr Datensatz einfügen nur 1' Rolle '?? –
Ja .. Benutzer haben nur eine Rolle – Hola
Warum verwenden Sie eine Pivot-Tabelle, wenn ein Benutzer nur eine Rolle haben kann? – Hammerbot