Maison > cadre php > Laravel > A quoi sert Wherehas dans Laravel ?

A quoi sert Wherehas dans Laravel ?

WBOY
Libérer: 2022-06-07 16:06:06
original
4855 Les gens l'ont consulté

Dans Laravel, Wherehas filtre les résultats de la requête du modèle en fonction de la relation d'association et vous permet d'ajouter des conditions de filtre pour ce modèle. Il est souvent utilisé pour filtrer les données sur la table esclave dans la table principale. User::whereHas('Table esclave ', function($...){$...->where(condition du filtre);})->get()".

A quoi sert Wherehas dans Laravel ?

L'environnement d'exploitation de cet article : système Windows 10, Laravel version 6, ordinateur Dell G3.

La méthode Wherehas

with()

with() dans Laravel est utilisée pour le "chargement impatient", ce qui signifie principalement que Laravel préchargera la relation exacte avec le modèle principal. Ceci est très utile si vous souhaitez ajouter toutes les relations dans un modèle. Étant donné que le « chargement hâtif » atténue le problème des requêtes 1+N, il suffit de requêtes 1+1 pour résoudre le problème, ce qui améliore considérablement la vitesse des requêtes.

Par exemple :

user > hasMany > post

$users = User::with('posts')->get();
foreach($users as $user){
    $users->posts; // posts已经被加载了,没有增加DB查询
}
Copier après la connexion

has()

has() consiste à filtrer les résultats de la requête du modèle en fonction de la relation d'association, sa fonction est donc très similaire à la condition où. Si vous utilisez uniquement has('post'), cela signifie que vous souhaitez uniquement obtenir ce modèle, qui a au moins une association de publication.

Par exemple :

user > hasMany > post

//User至少有一条post的关联关系
$users = User::has('post')->get();
Copier après la connexion

Vous pouvez également utiliser "."

Par exemple :

user > hasMany > post

$user = User::has('post.votes', ‘>’, '3')->get();
Copier après la connexion

whereHas()

whereHas() est fondamentalement la même que la méthode has(), mais elle vous permet d'ajouter des conditions de filtrage pour ce modèle. toi-même .

Par exemple :

user > hasMany > post

$users = User::whereHas('posts', function($q){
    $q->where('created_at', '>=', '2017-11-29');
})->get();
Copier après la connexion

【Recommandation associée : tutoriel vidéo 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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal