Я пытаюсь создать отношение в Laravel, и когда я использую отношение hasOne
, оно возвращает ноль.
Формат таблицы такой:
┌─────────┐ ┌─────────────────┐ ┌───────────────┐
│ 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
показывает нулевая переменная, есть идеи почему?