ai didi

mysql - (Laravel) 使用 "Eloquent Relationships"连接 3 个或更多表

转载 作者:行者123 更新时间:2023-11-30 22:03:20 24 4
gpt4 key购买 nike

我正在尝试使用 Eloquent 关系连接 3 个表,但它没有给出预期的结果。

装运模式

class Shipment extends Model
{
protected $table = 'ccctadm.Shipment';

public function customergroupcode()
{
return $this->hasMany(DocumentRuleSet::class,'customergroupcode','customergroupcode');
}
public function shipmentcategory()
{
return $this->hasMany(DocumentRuleSet::class,'shipmentcategory','shipmentcategory');
}

public function status()
{
return $this->hasMany(DocumentRuleSet::class,'status','status');
}
}

获取数据我正在使用这段代码

   $shipment_data = Shipment::With(['customergroupcode' , 'shipmentcategory','status'])->
Where('shipment_cycle','!=','closed')->get();

我试图让它等同于这个查询

 select B.rulesetname,B.icon ,COUNT(*)As Total  from
[ccct].[ccctadm]. [Shipment] A INNER JOIN
[ccct].[ccctadm].[documentruleset] B
ON
A.customergroupcode = B.customergroupcode AND A.shipmentcategory =
B.shipmentcategory AND A.status = B.status INNER
JOIN [ccctadm].[shipassign] S ON A.id = S.shipmentid AND
A.shipment_cycle != 'closed' GROUP BY rulesetname,B.icon

第一个查询返回 3 个表中的所有数据,但是当第二个查询仅返回 Release 时,这就是我想要的

我只想要这三个表之间有关系的数据而不是所有

我做错了什么?

最佳答案

使用has()方法。它根据关系的存在限制记录。

$shipment_data = Shipment::has('customergroupcode' , 'shipmentcategory','status')->
Where('shipment_cycle','!=','closed')->get();

关于mysql - (Laravel) 使用 "Eloquent Relationships"连接 3 个或更多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625647/

24 4 0
文章推荐: c# - 如何使用 MVVM 模式创建和组织非 UI 相关元素
文章推荐: python - pycharm 上的 anaconda ver5.3.1 缺少必需的依赖项 ['numpy' ]
文章推荐: python - Pytorch-类型错误 : 'torch.Size' object cannot be interpreted as an integer
文章推荐: c# - 是否可以在 Azure Web 角色中运行 F# WebApi (OWIN) 项目?
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com