【问题标题】:Search in two tables and retrieve main table results: Laravel在两个表中搜索并检索主表结果:Laravel
【发布时间】:2014-03-28 00:11:11
【问题描述】:

我对 Laravel 还很陌生,遇到了一个问题。

我有一个我希望搜索的列表的主表,并且我可以正常工作以处理该表中列的任何匹配字符串。问题在于从连接的第二个表中输入搜索词。我已经在模型中正确设置了关系。当我执行 print_r 时,我可以看到关系正在工作,因为我可以看到两个表中的所有列。我认为这与两个表都包含名为“name”的列这一事实有关,因此可能会让人感到困惑。

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

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

【问题讨论】:

    标签: php mysql sql search laravel


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2012-08-09
      • 2014-04-23
      • 2015-04-17
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      相关资源
      最近更新 更多