【问题标题】:trying to search in array that is json试图在 json 数组中搜索
【发布时间】:2019-02-12 10:14:27
【问题描述】:

这是我的索引方法:

if($request->has('search')){
        $search = $request->get('search');
        $households = Household::where('household_id',"1938347-32960066")->get();
    }

当我使用上面提到的 sn-p 时,我正在获取数据,但是当我尝试使用以下代码获取相同的数据时,它返回空。

if($request->has('search')){
        $search = $request->get('search');
        $households = Household::where('household_id', 'like', '%$search%')->get();
    }

问题出在哪里,我该如何解决?

【问题讨论】:

  • Arvind 是正确的,您当前正在将静态字符串传递到查询中,即您在询问 WHERE household_id LIKE '%string%'。在允许使用双引号(或连接)进行字符串插值后,它应该可以工作。检查搜索参数中的值是否符合您的预期。
  • 搜索参数提供了我在搜索中提供的正确值。
  • 您确定 $search 包含“1938347-32960066”并且您将“%1938347-32960066%”作为最后一个参数传递给 where()?如果你这样做where('household_id', $search),它是否有效?
  • 不适用于 where('household_id', $search)
  • 那么逻辑上 $search 不能等于 '1938347-32960066'。确保没有细微差别,例如不同的破折号/连字符或空格。

标签: php jquery mysql database laravel


【解决方案1】:

改用双引号

"%$search%"

或者,只是连接:

'%'.$search.'%'

【讨论】:

    【解决方案2】:

    你也可以这样尝试:

     $search= "%".$search."%";
    
    ->whereRaw("household_id like '".$search."'")
    

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2021-09-22
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      相关资源
      最近更新 更多