[英]belongsTo–hasOne relationship returns null
我試圖在 Laravel 中建立關系,當我使用hasOne
關系時,它返回 null。
表格格式是這樣的:
┌─────────┐ ┌─────────────────┐ ┌───────────────┐
│ socio │ ← │ socioGf │ → │ grupoFamiliar │
├─────────┤ ├─────────────────┤ ├───────────────┤
│ id │ │ idSocio │ │ id │
│ │ │ idGrupoFamiliar │ │ │
└─────────┘ └─────────────────┘ └───────────────┘
這是我的代碼:
模型SocioGf
:
...
public function grupoFamiliar(){
return $this->hasOne('App\GrupoFamiliar','id','idGrupoFamiliar')
->toSql();
}
public function socio(){
return $this->hasOne('App\Socio','id','idSocio');
}
...
模范socio
:
...
public function socioGf(){
return $this->belongsTo('App\SocioGf', 'idSocio', 'id');
}
...
模型組grupoFamiliar
:
...
public function socioGf(){
return $this->belongsTo('App\SocioGf', 'idGrupoFamiliar','id');
}
...
在我的grupoFamiliarController
我返回:
$gruposFamiliares = GrupoFamiliar::paginate($this->paginateNumber);
return view('gruposFamiliares',compact('gruposFamiliares'));
所以在gruposFamiliares.blade.php
我嘗試以這種方式訪問:
@forelse($gruposFamiliares as $grupoFamiliar)
{{dd($grupoFamiliar->socioGf)}}
@foreach($grupoFamiliar->socioGf() as $gf)
{{dd($gf->socio)}}
@endforeach
@endforelse
在第二行中, dd
顯示了一個空變量,知道為什么嗎?
你需要的是關系belongsToMany
在模型socio
:
...
public function gruposFamiliares(){
return $this->belongsToMany(GrupoFamiliar::class, 'socioGf_table', 'socioId', 'grupoFamiliarId');
}
...
在模型grupoFamiliar
:
...
public function socios(){
return $this->belongsToMany(Socio::class, 'socioGf_table', 'grupoFamiliarId', 'socioId');
}
...
然后,您可以像這樣訪問socios
和gruposFamiliares
:
$socio->gruposFamiliares()->get();
$grupoFamiliar->socios()->get();
這些行中的每一行都將返回 Socios 和 GruposFamiliares 的集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.