【问题标题】:Laravel query - request for a phrase to the translation tableLaravel 查询 - 向翻译表请求一个短语
【发布时间】:2019-06-04 15:31:06
【问题描述】:

我在查找结果时遇到问题。我在翻译表中的“名称”记录中搜索任何单词的出现。

//Bad result:
return Product::whereIn('id', $ids)->whereHas('translations', function ($query) use ($findTextWildcards) {
                    foreach ($findTextWildcards as $value) {
                        $query->orWhere('name', 'like', "%{$value}%");
                    }
                });

//good result but difficult query
        return Product::whereIn('id', $ids)->where(function ($query) use ($findTextWildcards) {
                    foreach ($findTextWildcards as $value) {
                        $query->whereHas('translations', function ($q) use ($value){
                            $q->where('name', 'like', "%{$value}%");
                        });
                    }
                });

【问题讨论】:

    标签: sql laravel laravel-5 eloquent


    【解决方案1】:

    试试这个。问题可能是你没有用额外的where 闭包来包装它。

    return Product::whereIn('id', $ids)
         ->whereHas('translations', function ($query) use ($findTextWildcards) {
                  $query->where(function($query) use ($findTextWildCards) {
                        foreach ($findTextWildcards as $value) {
                            $query->orWhere('name', 'like', "%{$value}%");
                        }
                   });
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-26
      • 2015-11-07
      • 2020-03-07
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      相关资源
      最近更新 更多