关于Laravel框架中Eloquent的多个模型关联间WhereOr条件如何书写?
背景介绍
我在书写代码的时候,遇见一个需求,用户发起咨询后,可以针对该咨询进行备注,通过关键词搜索,用户真实姓名或备注昵称等于特定搜索值,即满足其中任一条件,即查询出该条记录。
现在有三张表
A表 咨询表
B表 用户表
C表 备注表
当用户发起咨询后,会在A表内创建记录
A表(咨询表)会包含 B表(用户表)的ID,关联用户信息
C表(备注表)会包含A表(咨询表的)ID,存储的是针对该咨询添加的备注信息。
问题描述
即查询时,A表会关联B表与C表,搜索条件为 B中的name或者C中的name等于搜索值即满足条件。
这个查询语句应该如何写呢?
希望了解的大神或者做过的同学帮忙解答一下,感谢~
附目前没有搜索条件的Sql:
A::with('B:id,name,avatar_url', 'C:id,name')
->has('B')
->whereHas('C', function (Builder $query) {
$query->where('type', '=', 1);
})
->simplePaginate($this->pageNum);
推荐文章: