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()".
L'environnement d'exploitation de cet article : système Windows 10, Laravel version 6, ordinateur Dell G3.
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!