Как получить данные из промежуточной таблицы в laravel? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть 3 таких таблицы,

kelas

id |Келас |ромави

юрисан

id |псевдоним |девиз |Visi |Миси |tahun

kelas_jurusan (промежуточная таблица)

id |id_kelas (из таблицы kelas) |id_jurusan (из таблицы jurusan)

Обновление:

siswa

nama_lengkap |нисн |id_kelas_jurusan (из таблицы kelas_jurusan)

Я хочу получить данные 'kelas' в таблице kelas с доступом к таблице kelas_jurusan в модели Siswa.

У меня есть такой код: Модель Siswa

public function kelas()
    {
        return $this->belongsToMany('App\Kelas', 'kelas_jurusan', 'id_kelas');
    }

1 Ответ

0 голосов
/ 28 мая 2018

Это похоже на отношение ко многим .Вы можете определить свои модели как

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...