doudou6050 2018-12-14 15:46
浏览 73
已采纳

Laravel whereNotNull法规不能正常工作

I fetching data from DB and when I do that, trying to eliminate null rows.

public function search(Request $request)
{
    $q = $request->q;

    $estates = \DB::table('allestates')
        ->whereNotNull('lat')
        ->whereNotNull('lng')
        ->where('lat', '!=', '')
        ->where('log', '!=', '')
        ->where(function($query) {
            $query->where("building_name", "LIKE", "%" . $q . "%")
                ->orWhere("address", "LIKE", "%" . $q . "%")
                ->orWhere("company_name", "LIKE", "%" . $q . "%")
                ->orWhere("region", "LIKE", "%" . $q . "%")
        })
        ->orderBy('price')->paginate(8);

    return view("home", compact('estates', 'q'));
}

I can't figure out how to solve syntax error at this line:

   })
   ->orderBy('price')->paginate(8);
  • 写回答

1条回答 默认 最新

  • dongzhimeng2464 2018-12-14 16:38
    关注

    You can check for empty strings by adding ->where('lat', '!=', '')->where('log', '!=', '') to your query. You'll also need to add a closure to break off your OR statements:

    public function search(Request $request)
    {
        $q = $request->q;
    
        $estates = \DB::table('allestates')
            ->whereNotNull('lat')
            ->whereNotNull('lng')
            ->where('lat', '!=', '')
            ->where('lng', '!=', '')
            ->where(function($query) use ($q) {
                $query->where("building_name", "LIKE", "%" . $q . "%")
                    ->orWhere("address", "LIKE", "%" . $q . "%")
                    ->orWhere("company_name", "LIKE", "%" . $q . "%")
                    ->orWhere("region", "LIKE", "%" . $q . "%");
            })
    
            ->orderBy('price')->paginate(8);
    
        return view("home", compact('estates', 'q'));
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line