我正在尝试向过滤表编写查询,但看起来有些不对劲。 $keyword = "chapel"; $city = $request->get("city"); $price = $request->get("price");首先检查计划表是否为空。然后开始编写过滤查询。 $datas = Place::whereHas("plans") ->groupBy("address","place_name") ->when($keyword, function($query, $keyword) { return $query->where("place_name", "LIKE", "%$keyword%"); }) ->when($city, function($query, $city) { return $query->where("city", "LIKE", "%$city%"); })查询工作到 basic_info 表。但是当我$keyword在basic_info表中搜索时,然后会弹出错误并说调用模型 > [App\Model\Place] 上的未定义关系 [basic_infos]。 //basic info table ->when($keyword, function($query) use ($keyword){ $query->with(["basic_infos" => function($query, $keyword){ return $query->where("basic_info.wedding_style", "LIKE", "%$keyword%"); }]); }) //plan table ->when($price, function($query) use ($price){ $query->with(["basic_infos" => function($query, $price){ return $query->where("plans.plan_price", "<=", $price); }]); }) ->paginate(20); return $datas;但实际上它是定义的。这是模型放置模型public function basicInfos(){ return $this->hasMany("App\Model\BasicInfo");}基本信息模型public function place(){ return $this->belongsTo("App\Model\Place");}但是在查询内部->when函数中,当我使用->with它时,似乎出现了问题。我想,我在错误的时间使用它,否则......同样的事情肯定也会发生在plan表的查询中......什么是正确的方法?
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消