Laravel mise à Jour si l'enregistrement existe ou Créer si ce n'
Je veux mettre à jour mon dossier si il existe, mais en créer un si n'existe pas. ici, c'est que je suis tellement bien:
MerchantBranch.php
public function token()
{
return $this->hasOne('App\MerchantBranchToken');
}
MerchantBranchToken.php
public function merchant_branch()
{
return $this->belongsTo('App\MerchantBranch');
}
$find = MerchantBranchToken::find($id);
if (!$find) {
$branch = new MerchantBranchToken(['token' => $token]);
MerchantBranch::find($id)->token()->save($branch);
} else {
$find->token = $token;
$find->save();
}
Il fonctionne parfaitement.
Mais comme je sais Laravel est très puissant pour son éloquent modèle.
Puis-je faire de plus? ou j'ai déjà le faire correctement?.
J'ai essayé d'utiliser "updateOrCreate" méthode, mais ma clé étrangère "merchant_branch_id" sont à remplir en ligne.
Vous devez vous connecter pour publier un commentaire.
Laravel fournir la méthode updateOrCreate à cette fin
Si il y a un vol de Oakland à San Diego, fixer le prix de $99.
Si aucune correspondance n'modèle existe, créez-en un.
Laravel déjà l'utilisation de cette méthodologie par
save
fonctionLaravel Code
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php#L1491
->exists
Tous laravel modèles ont un
->exists
propriété.Plus précisément si le modèle est chargé soit à partir de la base de données, ou qui a été enregistrée dans la base de données depuis qu'il a été créé le
exists
propriété sera vrai; Sinon, il sera faux.Si vous comprenez le
->exists
vous pouvez l'utiliser mais ici, c'est une autre façon de traiter cette condition.d'une autre manière.
$this->exists
la façon dont son travail...Ajouter un nouveau code de la fonction :
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php :