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.
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.
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.
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.
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.
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.
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();
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.
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!