Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-05 17:42:02
original
725 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal