做湘菜的网站,外贸网站翻墙做广告,佛山 网站建设,动漫制作专业毕业答辩是什么内容二#xff0e;关联查询
前几篇博文#xff0c;了解了三种基础的关联模型#xff0c;并简单的进行查询#xff1b;本节课#xff0c;我们详细的了解更多的查询方案#xff1b; //下面两种查询是一样的#xff1b;
$books User::find(19)-book;
$books User::fin…二关联查询
前几篇博文了解了三种基础的关联模型并简单的进行查询本节课我们详细的了解更多的查询方案 //下面两种查询是一样的
$books User::find(19)-book;
$books User::find(19)-book()-get(); //可以采用 where 筛选或闭包
$books User::find(19)-book() -where(id, 1)-orWhere(id, 11)-get(); $books User::find(10)-book()-where(function ($query) { $query-where(id, 1)-orWhere(id, 11);
})-get(); 使用 has()方法可以查询某些条件下的关联查询数据 //获取存在关联书籍的用户列表(言下之意至少一本书)
$users User::has(book)-get();
return $users; //获取存在关联书籍(并超过 3 条)的用户列表 $users User::has(‘book’,’’, 3)-get(); return $users;
使用 whereHas()方法创建闭包查询 //whereHas 闭包用法
$users User::whereHas(book, function ($query) { //这里$query 是 book 表通过 user_id 查询返回 user 表数据 $query-where(user_id, 19); })-get();
return $users; 使用 doesntHave()方法即 has()的反向操作 //获取不存在关联书籍的用户列表闭包用法whereDoesntHave()
$users User::doesntHave(book)-get();
return $users;使用 withCount()方法可以进行关联统计 //关联统计会自动给一个 book_count 字段 //统计每个用户有多少本书
$users User::withCount(book)-get();
return $users; //给多个关系添加统计profile_countbook_count
$users User::withCount([profile, book])-get();
return $users; //关联统计再结合闭包进行筛选还可以设置别名
$users User::withCount([profile, book function ($query) { //这里限制被统计的记录 $query-where(user_id, 19); }])-get(); return $users;