我正在尝试编写查询以过滤表,但是看起来有些不对劲。
$city = $request->get("city");
$price = $request->get("price");
首先检查计划表是否为空。然后开始编写过滤查询。
->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]。
->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;
但是实际上它是定义的。这是模特
放置模型
{
return $this->hasMany("App\Model\BasicInfo");
}
基本信息模型
{
return $this->belongsTo("App\Model\Place");
}
但是在->when函数内部的查询中,当我使用->with它时,似乎发生了问题。我想,我在错误的时间使用了它,否则…… plan表的查询肯定也会发生同样的事情。正确的方法是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。