【问题标题】:Laravel Selecting Relevant Data From DB Based On ArraysLaravel 基于数组从数据库中选择相关数据
【发布时间】:2020-06-12 04:55:58
【问题描述】:

我在使用 %LIKE% 运算符选择数据时遇到问题。

目前,我有 两个表,分别称为 tagging_tags 和 newsnews 表有一个名为 tags 的列。下面是我的新闻表的图片:

下面是我的 taggable_tags 表的图片:

我的问题是,我得到的数据不是我想要的想法。如果我通过访问“Honda News 1”页面而死转储,我会得到所有包含关键字“Honda”的数据的结果。

但是,“Honda News 2”和“Honda News 3”不会返回所有 3 个包含关键字“Honda”的新闻。

下面是我的代码:

    /* relevant articles section */

    // ... my previous code with variable $tag_values (data from tags column in news)

    $i = 0;
    foreach($tag_values as $tagarr){
        $array1[] = $tagarr[0]['name'];
    }

    //$array1 returns array:2 [▼ 0 => "Honda" 1 => "News" ]
    $array2 = Tags::pluck('name')
    ->all();

    //$array2 returns all the arrays in taggable_tags table
    $result = array_intersect($array1, $array2);

    //$result finds the arrays that intersect

    $query = News::query();
    foreach($result as $relevant_result){
        $query->where(function ($q) use ($relevant_result){
            $q->where('tags', 'like', '%'.$relevant_result.'%')
                ->orWhere('title', 'like', '%'.$relevant_result.'%');
        });
    }

    $relevant_articles = $query->orderBy('title')->get();

我希望有人可以指导我如何获取它,以便即使在新闻下的标题和标签列中找到一个相似的关键字,它也应该返回相关文章的数据。

提前谢谢你!

【问题讨论】:

    标签: php laravel eloquent sql-like laravel-5.6


    【解决方案1】:

    设法自己做! :) 对于任何有类似问题的人,以下是我的解决方案:

            //... my previous code with variable $tag_values (data from tags column in news)
        $i = 0;
        foreach($tag_values as $tagarr){
            $array1[] = $tagarr[0]['name'];
        }
    
       // dd($array1);exit;
    
       $query = News::query();
        foreach ($array1 as $key => $value) {
            $i++;
            $query->orWhere('tags', 'like', '%'.$value[$i].'%')
            ->orWhere('title','like', '%'.$value[$i].'%');
        }
        $results = $query->take(2)->get();
    
        dd($results);
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 2018-07-31
      • 2014-08-19
      • 2017-02-04
      • 2021-10-23
      • 2020-06-30
      相关资源
      最近更新 更多