Lorsque vous travaillez avec des bases de données, il est courant de devoir insérer un nouvel enregistrement s'il n'existe pas ou mettre à jour un enregistrement existant si c'est le cas. Dans l'ORM Eloquent de Laravel, cela peut être fait de manière concise en utilisant la méthode firstOrNew().
$model = Model::firstOrNew($attributes);
Si l'enregistrement existe déjà dans la base de données, la méthode firstOrNew() renverra une instance de ce modèle. Vous pouvez ensuite modifier ses attributs et l'enregistrer à l'aide de la méthode save().
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
Si l'enregistrement n'existe pas dans la base de données, la méthode firstOrNew() créera une nouvelle instance du modèle avec les attributs spécifiés. Il insérera ensuite l'enregistrement dans la base de données lorsque vous appellerez la méthode save().
<code class="php">// Insert new record into database</code>
Dans l'extrait de code fourni, l'approche suivante est également utilisée pour insérer un nouvel enregistrement s'il n'existe pas ou mettre à jour un enregistrement existant s'il existe :
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first(); if ($shopOwner == null) { // Insert new record into database } else { // Update the existing record }</code>
Cette approche implique d'abord d'interroger la base de données pour récupérer l'enregistrement existant. Si aucun enregistrement n'est trouvé, un nouvel enregistrement est inséré. Sinon, l'enregistrement existant est mis à jour.
Pour les dernières informations sur la méthode firstOrNew(), reportez-vous à la documentation mise à jour liée ci-dessous.
[Documentation mise à jour Lien](https://laravel.com/docs/8.x/eloquent)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!