在两个表中搜索并检索主表结果:Laravel

时间:2014-03-28 00:11:11

标签: php mysql sql search laravel

我对Laravel相当新,遇到了一个问题。

我有一个主要的表格,我希望搜索我的列表,并且我对此表中的列的任何匹配字符串都有效。问题在于从连接的第二个表中输入搜索词。我已经在模型中正确设置了关系。当我执行print_r时,我可以看到关系正常,因为我可以看到两个表中的所有列。我认为这与两个表都包含名为'name'的列这一事实有关,所以它可能会变得混乱。

任何人都可以帮助我指出正确的方向,因为我尝试过幼虫IRC频道并在Google上观看,但无济于事:(

非常感谢...(请在此链接中查看我的代码:http://laravel.io/bin/aKDW - 我认为第16行是主要问题)

1 个答案:

答案 0 :(得分:0)

使用orWhereHas

Beach::where('beach.name', 'LIKE', "%{$q}%")
     ->orWhere('description', 'LIKE', "%{$q}%")
     ->orWhereHas(['countryJoin' => function($q){ $q->where('countryJoin.name', 'LIKE', "%{$q}%"); }])
     ->with('countryJoin', 'imageJoin')
     ->get();