在关联查询中 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写法?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

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

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

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

6年前 评论

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

6年前 评论
leo

@eeeee whereHas 已经很简便了

6年前 评论

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