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
705 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!

source:php.cn
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