Maison  >  Article  >  développement back-end  >  Comment vérifier l’existence d’un modèle associé dans Laravel ?

Comment vérifier l’existence d’un modèle associé dans Laravel ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 17:42:02563parcourir

How to Check for the Existence of a Related Model in Laravel?

Laravel : vérifier l'existence d'un modèle associé

Lors de la construction de modèles Laravel avec des relations, il est crucial de déterminer l'existence d'un modèle associé pour gérer les mises à jour et les créations. Dans les scénarios où le modèle associé pourrait ne pas exister initialement, il devient nécessaire de vérifier sa présence.

Solution pour PHP 7.2 et supérieur :

Pour PHP 7.2 et versions ultérieures, un une solution simple consiste à utiliser la méthode exist() sur l'objet relation :

<code class="php">$model->relation()->exists();</code>

Solution générique pour pré-PHP 7.2 :

Pour les versions antérieures à PHP 7.2 , une solution générique applicable à tous les types de relations existe :

<code class="php">if (count($model->relation))
{
  // exists
}</code>

Comprendre les évaluations :

  • Relations simples : Si la le modèle associé existe, count() renvoie 1 (vrai). S'il n'existe pas, count() renvoie 0 (faux).
  • Relations à plusieurs : Lorsqu'il n'y a pas de modèles associés, count() renvoie 0 (faux), indiquant une collection inexistante. S'il existe des modèles associés, count() renvoie un entier positif (vrai), quel que soit le nombre de modèles.

Exemple d'utilisation :

Dans votre scénario, vous pouvez utiliser le code suivant pour vérifier l'existence d'un modèle d'option :

<code class="php">if (Input::has('option')) {
    if ($model->option()->exists()) {
        // update option
    } else {
       // create option
    }
};</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn