簡體   English   中英

Laravel嵌套關系返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM