【发布时间】:2020-05-16 05:49:10
【问题描述】:
我正在尝试在 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 显示了一个空变量,知道为什么吗?
【问题讨论】:
-
在hasOne关系中,“属于”的模型是必须保留外键的模型。看来你已经投资了
标签: php laravel eloquent laravel-blade