where(condition du filtre);})->get()"."/> where(condition du filtre);})->get()".">

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

A quoi sert Wherehas dans Laravel ?

WBOY
WBOYoriginal
2022-06-07 16:06:064849parcourir

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查询
}

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

Vous pouvez également utiliser "."

Par exemple :

user > hasMany > post

$user = User::has('post.votes', ‘>’, '3')->get();

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

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

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