[英]Laravel Nesting relationship returns null
我有下一個數據庫結構:
我的口才模型中還有下一個代碼:
Sample.php
public function polfzms()
{
return $this->belongsToMany('App\Polfzm');
}
Polfzm.php
public function samples()
{
return $this->belongsToMany('App\Sample');
}
public function gene()
{
return $this->belongsTo('App\Gene');
}
Gene.php
public function polfzms()
{
return $this->hasMany('App\Polfzm');
}
我嘗試在where子句中使用點獲取帶有他的標簽,polfzms和基因的樣本數據polfzms.gene
public function show($id)
{
return Sample::with('labels', 'polfzms.gene')->findOrFail($id);
}
但是我有一個"gene":null
{
"id":18,
"person_id":1,
"prefix_id":3,
"labels":[
{
"id":1,
"name":"Name1",
"meaning":"dfdf",
"pivot":{
"sample_id":18,
"label_id":1
}
},
],
"polfzms":[
{
"id":1,
"name":"G20210",
"id_gene":1,
"pivot":{
"sample_id":18,
"polfzm_id":1
},
"gene":null
}
]
}
我使用最新的laravel版本。 我該如何解決?
由於沒有顯式定義外鍵,也沒有遵循Eloquent命名約定,因此您的Gene
關系將得到null
。
gene_id
期望外鍵為gene_id
,而您的架構具有外鍵id_gene
。
要解決此問題,請更改架構以將外鍵定義為gene_id
,或按如下所示更新關系:
public function gene()
{
return $this->belongsTo('App\Gene', 'id_gene');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.