1
我試圖使用雄辯關係連接3個表格,但它沒有給出預期的結果。(Laravel)使用「雄辯關係」加入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個表中的所有數據,但在第二個只返回版本,這就是我想要
我只希望有這三個表不是一切
我在做什麼錯之間關係的數據?
我得到這個錯誤將nvarchar值'shipmentcategory'轉換爲數據類型int時,轉換失敗......我認爲只適用於int值,而shipmentcategory不是! –
@Ahmadz No. has()方法與關係存在有關。並且錯誤可能是由於[]。我已經更新了答案。 –
我試圖刪除數組,但仍然是相同的錯誤。所有列類型都是Nchar –