使用InnoDb在laravel mysql中实现搜索功能

时间:2015-04-09 11:05:25

标签: php search laravel-4

我正在尝试实现搜索多个表的搜索。这是场景:

考虑数据库结构: 多对多:图像表和主题表。 多对多:图像表和样式表

我想要的最终结果是某个雄辩模型的集合'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),同时消除冗余条目。

1 个答案:

答案 0 :(得分:0)

答案与我对其他问题的答案相同。这是链接: Merge collections in laravel from relations