Création et mise à jour de Laravel Eloquent

Création et mise à jour de Laravel Eloquent

Problème

Quel est le moyen le meilleur et le plus rapide de créer un nouvel enregistrement en utilisant Laravel Eloquent ou mettre à jour l'enregistrement s'il existe ?

$ user = user :: où ('organisation_id', '=', $ organisation_id)
-> où ('âge', '=', 30) -> First ();
if ($ user == null)
// insérer un nouvel enregistrement dans la base de données
autre
// Mette à jour l'enregistrement existant

Solution

Y compris Laravel 6, il y a eu quelques façons de créer et de mettre à jour votre enregistrement éloquent séparément. Ce dont vous avez besoin ici est une méthode qui fait tout cela pour vous. Vous pouvez utiliser Firstornw ou FirstorCreate. La différence est que le premier ne renvoie qu'une instance du modèle, ce qui signifie que vous avez l'objet, mais il n'a pas encore été persisté dans la base de données. Vous devrez appeler la méthode sauvegarde () dessus. L'autre fera tout cela pour vous.

$ user = user :: FirstOrnew (['name' => 'Laravel Recipes']);
$ user-> age = entrée :: get ('age');
$ user-> sauver ();

Vous trouverez ci-dessous le lien mis à jour des documents qui est sur la dernière version de Laravel

Docs ici: lien mis à jour