【问题标题】:How to search from Json in laravel如何从 Laravel 中的 Json 中搜索
【发布时间】:2018-06-22 15:48:58
【问题描述】:

我有一个 json 值表,需要从中搜索值我如何解码 json 以便我可以搜索它。我正在尝试实现类似查询,但对我不起作用。

id     country            company_name                    Main_category   
71       33          {"en":"hitech","ar":"hitech"}            14,22,24   

代码:

$matchThese = [ 'country' => $request->input('country'),
                        'company_name' => $request->input('company_name'),
                        'main_category' => $request->input('main-category'),
                      ];

        $comma_separated = $request->input('company_name');

        $companies = Company::where(function($q) use($comma_separated) {
            $q->where('main_category', 'like', '%,' . $comma_separated . ',%');
            $q->orWhere('main_category', 'like', $comma_separated . ',%');
            $q->orWhere('main_category', 'like', '%,' . $comma_separated);
        })
        ->where($matchThese)->orWhere($matchThese)
        ->orWhere('main_category', 'like', $comma_separated . ',%')->paginate('3'); 

如果我在 hitech 上搜索它什么都不会显示,因为 main_category 部分在 JSON 甲酸盐中

【问题讨论】:

  • 你根本没有company_name的条件

标签: json laravel eloquent


【解决方案1】:

如果您正在寻找 company_name,您应该更改您的查询。

$companies = Company::where('company_name', 'like',  '%'.$comma_separated.'%'.);

您将 main_category 与 company_name 进行比较。您也不应该需要那么多 where 子句。由于您正在寻找 json 字符串中的简单模式,因此逗号的放置方式无关紧要。

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 2020-12-21
    • 2022-10-17
    • 2021-06-02
    • 2019-05-07
    • 2018-12-27
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多