


Comment utiliser les conditions pour filtrer les requêtes liées à thinkphp
Apr 07, 2023 am 09:30 AMLors du développement avec thinkphp, vous rencontrez souvent des situations dans lesquelles vous devez utiliser des requêtes associées. Lors de l'exécution de requêtes associées, les conditions sont un point auquel nous devons souvent prêter attention.
Cet article expliquera comment utiliser les conditions pour filtrer lors de l'exécution de requêtes associées dans thinkphp.
- Définir l'association dans le modèle
Lors de l'exécution d'une requête associée, vous devez d'abord définir l'association dans le modèle. Nous prenons ici comme exemple une relation un-à-un. Tout d'abord, définissez un modèle User, qui contient une association hasOne?:
class?User?extends?Model { ????protected?$table?=?'users'; ????public?function?profile() ????{ ????????return?$this->hasOne('Profile'); ????} }
Dans le code ci-dessus, nous définissons une association hasOne nommée profile, qui est associée à un modèle nommé Profile. Dans le modèle Profile, vous devez définir l'association AppartientTo?:
class?Profile?extends?Model { ????protected?$table?=?'profiles'; ????public?function?user() ????{ ????????return?$this->belongsTo('User'); ????} }
Dans le code ci-dessus, nous définissons une association AppartientTo nommée user, qui est associée à un modèle nommé User.
- Effectuer une requête associée
Après avoir défini la relation, nous pouvons effectuer des requêtes associées dans le contr?leur. L'instruction de requête est la suivante?:
$users?=?User::with(['profile'?=>?function($query){ ????$query->where('age',?'>=',?18); }])->select();
Dans le code ci-dessus, nous avons utilisé la méthode with pour effectuer une requête associée. Parmi eux, le premier paramètre transmet l'association que nous voulons interroger, et le deuxième paramètre est une fonction de rappel utilisée pour imposer des restrictions conditionnelles supplémentaires sur cette requête.
Dans le code ci-dessus, nous avons utilisé la méthode Where pour filtrer l'attribut age du modèle de profil et interroger uniquement les enregistrements dont l'age est supérieur ou égal à 18.
- Conditions de fonctionnement cha?nées
En plus de transmettre la fonction de rappel dans la méthode with pour limiter les conditions de requête, vous pouvez également effectuer des conditions de fonctionnement cha?nées lors de l'exécution de requêtes associées. Par exemple, le code suivant implémente une requête pour les utilisateurs dont l'age est supérieur ou égal à 18 ans dans la table user, et pour les enregistrements dont l'adresse n'est pas vide dans leurs enregistrements de profil :
$users?=?User::where('age',?'>=',?18) ?????????????->with(['profile'?=>?function($query){ ?????????????????$query->where('address',?'<>',?''); ?????????????}]) ?????????????->select();
Dans le code ci-dessus, on interroge d'abord le Modèle utilisateur via la méthode Where Les conditions de requête sont restreintes. Ensuite, nous avons utilisé la fonction de rappel dans la méthode with pour restreindre les conditions de requête du modèle de profil.
- Résumé
Lors de l'exécution de requêtes associées dans thinkphp, nous pouvons utiliser la méthode with pour effectuer des requêtes associées, et restreindre et filtrer davantage les résultats de la requête en transmettant des fonctions de rappel ou des conditions de fonctionnement cha?nées.
Bien s?r, lors de l'exécution de requêtes associées, nous devons également prêter attention à d'autres détails, tels que la définition des relations d'association, l'écriture des instructions de requête, etc. Dans le processus de développement actuel, nous devons effectuer des opérations flexibles en fonction de circonstances spécifiques.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)