为了账号安全,请及时绑定邮箱和手机立即绑定

Eloquent groupBy() 在表关系上无法正常工作

Eloquent groupBy() 在表关系上无法正常工作

PHP
开心每一天1111 2022-05-27 16:39:04
该groupBy方法无法正常工作。我不确定是什么问题。更新我在表之间建立了hasMany()<->belongsTo()关系。地方modelprotected $table = "places";protected $guarded = [];public $with = ["plans"];public function plans(){    return $this->hasMany("App\Models\Plan");}计划Modelprotected $guarded = [];public function place(){    return $this->belongsTo("App\Models\Place");}在控制器中,当我返回 json 数据时,我可以看到关系。$place = Place::with(["plans"])->get();return $place;结果很好。检查图像:https ://imgur.com/a/0CHXPhQ但是,当我尝试groupBy()在place_name列上使用时。它不会将他们的计划集中在一个地方......Place::with(["plans"])->groupBy("place_name")->get(); 结果:https ://imgur.com/a/qPxMU42如您所见,第二名的计划没有与第一名组合...它已经变得未知...预期结果计划对象也应该分组,因为它们已place_name分组...知道是什么导致了这个问题吗?我该如何解决?
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

如果您遇到有时两行由于分组依据而分组的问题,那么您可以做一件事。您可以使用 group by concat 两个字段。

$data = Place::groupBy(\DB::raw('CONCAT(name, ' ', address)'))->paginate();

这是您可以放置并获得期望结果的逻辑。


查看完整回答
反对 回复 2022-05-27
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

尝试这个

$data = Place::groupBy(['name','address'])->paginate(20);


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号