我正在尝试实现搜索多个表的搜索。这是场景:
考虑数据库结构: 多对多:图像表和主题表。 多对多:图像表和样式表
我想要的最终结果是某个雄辩模型的集合'images'
。现在我要在两个表(模型)中查找关键字'subject'
和'style'
。
现在我需要$result=subject->images()+style->images()+Image::where(query)
的最终结果。 $result
变量必须是'images'
模型的类型集合对象。
这就是我试过的:
$subject=Subject::where('subject','=',$searchParam)->get();
$results=Image::where('type','!=','profile_picture');
$style = Style::where('style', '=', $searchParam)->get();
$results=$results->filter(function($result){
$boolVal=false;
if(in_array($result->styles()->style,$style) or in_array($result->subjects()->subject,$subject))
{
$boolVal=true;
}
return $boolVal;
});
还有另一种我不知道如何实施的方法。即
获取$subject
和$style
数组,如上面的代码所示,以某种方式合并$subject->images()
,$style->images()
和Image::where(query)
,同时消除冗余条目。