@CrimsonFox

Как связать таблицы через две промежуточные?

Суть такая
Есть четыре таблицы : Habitation, HabitationPlace, Place и Room
Связаны они следующим образом
//Habitation и HabitationPlace
    public function places() {
        return $this->hasMany('App\Habitationplace', 'habitation_id', 'id');
    }
//HabitationPlace и Place 
    public function place()
    {
        return $this->hasOne('App\Place', 'id', 'place_id');
    }
//Place и Room
    public function room()
    {
        return $this->hasOne('App\Room', 'id', 'room_id');
    }

как итог Habitation и Room напрямую не связаны, но мне нужно получить значение level_id из Room для поиска (больше оно нигде не выводится)
как можно их связать и где это должно быть описано (в модели или контроллере)?

p.s. на данный момент у меня такой код, он работает, но level в нём участия не принимает, в честь чего и вопрос:
{
            $level_idd = $request['level']+2;
            $level_id = DB::table('room')->where('level_id', '=', $level_idd)->get();

        $habitation =  Habitation::with(["places"])
        ->where('status','=','saselen')
        ->whereDate('dogovor_date','>=',$start_date)
        ->whereDate('dogovor_date','<=',$date_end)
        ->where('documenul_id','=',$request['documenuls'])
        ->get();    
        }
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект