我对Laravel相当新,遇到了一个问题。
我有一个主要的表格,我希望搜索我的列表,并且我对此表中的列的任何匹配字符串都有效。问题在于从连接的第二个表中输入搜索词。我已经在模型中正确设置了关系。当我执行print_r时,我可以看到关系正常,因为我可以看到两个表中的所有列。我认为这与两个表都包含名为'name'的列这一事实有关,所以它可能会变得混乱。
任何人都可以帮助我指出正确的方向,因为我尝试过幼虫IRC频道并在Google上观看,但无济于事:(
非常感谢...(请在此链接中查看我的代码:http://laravel.io/bin/aKDW - 我认为第16行是主要问题)
答案 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();