2014-03-28 49 views
0

我对Laravel相当陌生,遇到过问题。在两张表中搜索并检索主表结果:Laravel

我有我的列表,我希望搜索的主表,我有这个工作正常任何匹配的字符串在这个表中的列。问题是从联接的第二个表中输入搜索词。我已经在模型中正确建立了关系。当我做print_r时,我可以看到关系正在工作,因为我可以看到两个表中的所有列。我认为这与两个表都包含名为'name'的列的事实有关,所以它可能会变得混乱。

谁能帮我指出了正确的方向,因为我已经试过幼虫IRC频道,看着谷歌,但无济于事:(

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

回答

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();