问题描述
如何过滤关系?
我从相关数据中找到了模型。 如何只选择与搜索词匹配的相关模型?
基本查询
$todolists = TodoList::select(['*']);
foreach ($tags as $tag) {
$todolists->whereHas(
'item.tag',function ($query) use ($tag) {
$query->where('tags.name',$tag);
}
);
}
我想选择符合搜索条件的相关型号(商品)。
解决方法
这将生成一个非常糟糕的查询(每个标签为 AND WHERE EXISTS( ... )
)。
您可以改用 whereIn
。
ToDoList::whereHas('item.tag',function ($query) use ($tags) {
$query->whereIn('name',$tags);
})
->get();