У меня есть отношение один ко многим в моих моделях, и оно работает так, как я хочу, но иногда мне нужна только одна запись, которую нужно вернуть (не как массив коллекции).Вот мой контроллер
$sesi = Sesi::with('jadwal.mapelLokal.guru','jadwal.mapelLokal.matapelajaran')->whereHas('jadwal',function($jadwal) use ($r) {
$jadwal->whereHas('mapelLokal',function($mapel) use($r) {
$mapel->where('id_lokal',$r->lokal);
});
})->get();
Sesi Model
class Sesi extends Model
{
protected $table = 'sesi';
public $timestamps = false;
public function jadwal()
{
return $this->hasMany('SIAStar\Jadwal','id_sesi');
}
}
jadwal модель
class Jadwal extends Model
{
protected $table= 'jadwal';
public $timestamps = false;
public function mapelLokal()
{
return $this->belongsTo('SIAStar\MapelLokalGuru','id_mapel_lokal');
}
}
и MapelLokalGuru
class MapelLokalGuru extends Model
{
protected $table = 'mapel_lokal_guru';
protected $fillable = ['id_lokal','mapel_id','guru_id'];
public $timestamps=false;
public function mataPelajaran()
{
return $this->belongsTo('SIAStar\MataPelajaran','mapel_id');
}
public function guru()
{
return $this->belongsTo('SIAStar\Guru','guru_id');
}
public function formNilai()
{
return $this->hasMany('SIAStar\FormNilai','id_mapel_lokal');
}
public function lokal()
{
return $this->belongsTo('SIAStar\Lokal','id_lokal');
}
public function postMateri()
{
return $this->hasMany('SIAStar\PostKelasOnline','id_mapel_lokal');
}
}
и результатКонтроллер выглядит так:
Collection {#454 ▼
#items: array:2 [▼
0 => Sesi {#452 ▼
#table: "sesi"
//...
#relations: array:1 [▼
"jadwal" => Collection {#468 ▼
#items: array:1 [▶]
}
]
}
]
}
. Как вы видите, отношения jadwal возвращают коллекцию, но я хочу только одну запись, поскольку она имеет только одну запись.Как запросить вложенные отношения, чтобы отношения jadwal возвращали только одни данные?