Maison  >  Article  >  cadre php  >  Une brève analyse de la façon d'utiliser la méthode Wherehas dans Laravel

Une brève analyse de la façon d'utiliser la méthode Wherehas dans Laravel

PHPz
PHPzoriginal
2023-04-14 15:42:482675parcourir

Laravel est un framework PHP très populaire qui possède de nombreuses fonctions et fonctionnalités puissantes. Parmi eux, l'ORM (Object-Relational Mapping) Eloquent de Laravel est un composant très important. Eloquent ORM nous permet d'exploiter la base de données de manière orientée objet et est l'un des cœurs de Laravel. Dans Eloquent ORM, la méthode WhereHas est une méthode très couramment utilisée. Présentons en détail l'utilisation de cette méthode.

  1. Quelle est la méthode WhereHas ? La méthode

whereHas est une méthode de requête fournie par Eloquent ORM, qui est utilisée pour filtrer les modèles avec les relations associées dans la requête. En d’autres termes, nous pouvons utiliser la méthode WhereHas pour trouver deux modèles liés.

  1. Comment utiliser la méthode WhereHas ?

Pour utiliser la méthode WhereHas, vous devez d'abord comprendre deux concepts de base : les fonctions d'association et de fermeture. Présentons brièvement ces deux concepts ci-dessous.

  • Relations d'association

Dans Eloquent ORM, nous pouvons représenter la connexion entre deux modèles à travers des relations d'association. Il existe généralement quatre types de relations d'association : un à un (hasOne, appartient à), un à plusieurs (hasMany, appartient à), plusieurs à un (hasOne, appartient à) et plusieurs à plusieurs (belongsToMany). . Nous devons définir la relation d'association via la méthode des relations dans la définition du modèle.

  • Fonction de fermeture

Lors de l'utilisation de la méthode WhereHas, nous devons transmettre une fonction de fermeture pour filtrer davantage les modèles associés. La fonction de fermeture peut accepter une instance de Query Builder comme paramètre, et nous pouvons utiliser cette instance dans le corps de la fonction pour filtrer davantage le modèle.

Ce qui suit est la syntaxe de base de la méthode WhereHas :

$field = '关联模型的属性名';
$value = '要查询的值';

$models = Model::whereHas('关联关系方法名', function($query) use ($field, $value) {
    $query->where($field, '=', $value);
})->get();

où $field et $value sont les noms d'attribut et les valeurs d'attribut des modèles associés que nous souhaitons interroger.

  1. Utilisation étendue

En plus de l'utilisation de base ci-dessus, la méthode WhereHas prend également en charge une utilisation étendue, nous permettant de l'utiliser de manière plus flexible.

  • Vérifiez si le modèle associé existe

Nous pouvons utiliser la méthode WhereHas pour déterminer si un modèle avec une certaine relation associée existe. Dans ce cas, nous pouvons utiliser le deuxième paramètre de la méthode whereHas pour spécifier une valeur constante de true, de sorte que nous puissions uniquement vérifier si le modèle associé existe sans interroger davantage les enregistrements du modèle associé.

$models = Model::whereHas('关联关系方法名', true)->get();
  • Vérifiez si le modèle associé satisfait à plusieurs conditions

Parfois, nous pouvons avoir besoin de vérifier si le modèle associé satisfait à plusieurs conditions. À l’heure actuelle, nous pouvons imbriquer plusieurs conditions Where dans la fonction de fermeture pour filtrer davantage les modèles associés.

$field1 = '关联模型的属性名1';
$value1 = '要查询的值1';
$field2 = '关联模型的属性名2';
$value2 = '要查询的值2';

$models = Model::whereHas('关联关系方法名', function($query) use ($field1, $value1, $field2, $value2) {
    $query->where($field1, '=', $value1)
          ->where($field2, '=', $value2);
})->get();

Dans le code ci-dessus, nous avons utilisé deux conditions Where dans la fonction de fermeture pour vérifier si les deux modèles associés remplissent les conditions spécifiées.

  1. Résumé

Dans l'ORM Eloquent de Laravel, la méthode WhereHas est une méthode très pratique. Grâce à la méthode WhereHas, nous pouvons trouver deux modèles avec des relations liées et effectuer un filtrage supplémentaire. Dans le même temps, la méthode WhereHas prend également en charge certaines utilisations étendues, telles que vérifier si le modèle associé existe, vérifier si le modèle associé remplit plusieurs conditions, etc. Maîtriser l'utilisation de la méthode WhereHas sera très utile lorsque nous effectuerons des opérations de base de données dans Laravel.

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