在关联查询中 whereHas 组成的是子查询,有没有简便的方式改用 join

if($category_id && $category = Category::find($category_id)){
if($category->is_directory){
$builder->join('categories', 'products.category_id', 'categories.id')->where('path', 'like', $category->path.$category->id.'-%');
//$builder->whereHas('category', function ($query) use ($category){
// $query->where('path', 'like', $category->path.$category->id.'-%');
//});
} else {
$builder->where('category_id', $category->id);
}
}
这是修改过的,请问有没有简便的join写法?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
leo
最佳答案

除非有极大的性能差距,不然我都用 ORM Query 而不是 JOIN 这种 Database Query

5年前 评论
讨论数量: 3
leo

除非有极大的性能差距,不然我都用 ORM Query 而不是 JOIN 这种 Database Query

5年前 评论

@leo 对laravel不是太熟悉,请问在Eloquent ORM中有提供简便写法吗?

5年前 评论
leo

@eeeee whereHas 已经很简便了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!