Это похоже на отношение ко многим .Вы можете определить свои модели как
class Kelas extends Model
{
public function jurusans()
{
return $this->belongsToMany(Jurusan::class, 'kelas_jurusan', 'id_kelas');
}
}
class Jurusan extends Model
{
public function kelases()
{
return $this->belongsToMany(Kelas::class, 'kelas_jurusan', 'id_jurusan');
}
}
. Для получения данных от обеих моделей вы можете использовать Стремительная загрузка
Kelas::with('jurusans')
В соответствии с вашей обновленной структурой вам необходимо ввести новую модель соединения, такую как KelasHasJurusan
, в которой будут отображаться следующие отображения
KelasHasJurusan
class KelasHasJurusan extends Model
{
public function kelas()
{
return $this->belongsTo(Kelas::class, 'id_kelas');
}
public function jurusan()
{
return $this->belongsTo(Jurusan::class, 'id_jurusan');
}
public function siswas(){
return $this->hasMany(Siswa::class, 'id_kelas_jurusan');
}
}
Другие модели будут отображаться как
Kelas
class Kelas extends Model
{
public function kelasHasJurusan()
{
return $this->hasMany(KelasHasJurusan::class, 'id_kelas');
}
}
Jurusan
class Jurusan extends Model
{
public function kelasHasJurusan()
{
return $this->hasMany(KelasHasJurusan::class, 'id_jurusan');
}
}
Siswa
class Siswa extends Model
{
public function kelasHasJurusan()
{
return $this->belongsTo(KelasHasJurusan::class, 'id_kelas_jurusan');
}
}
Теперь для загрузки данных для kelas вместе с данными siswa вы можете получить как
Kelas::with('kelasHasJurusan.siswas')