Добавить объединить фильтр в Laravel Eloquent - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в Laravel.

Я хочу добавить соединение фильтра через Laravel Eloquent модель.

У меня ниже отношения

user принадлежит city

user имеет один restaurant

restaurant имеет много jobs

Теперь я хочу получить все jobs с фильтр city.

Я пробовал несколько способов, но в итоге ошибочно, как:

$jobs = Job::where("date_time", ">=", $currentDate)->where("city.id", 50)->whereIn('job_status', ['upcoming', 'active'])->orderBy('start_date_time', 'desc')->get();

и ниже

$jobs = Job::with(['restaurant'])->where("date_time", ">=", $currentDate)->where("city.id", 50)->whereIn('job_status', ['upcoming', 'active'])->orderBy('start_date_time', 'desc')->get();

Так , вот как я могу добавить соединение с работы -> ресторан -> пользователь -> город?

Спасибо

1 Ответ

0 голосов
/ 06 марта 2020

Если в вашей таблице есть city_id

 $jobs = DB::table('jobs')->with('restaurant')
        ->join('users', 'users.id', '=', 'restaurant.user_id')
        ->join('cities', 'users.id', '=', 'cities.user_id')
        ->where("table_name.date_time", ">=", $currentDate)
        ->where("cities.id", 50)
        ->whereIn('job_status', ['upcoming', 'active'])
        ->orderBy('table_name.start_date_time', 'desc')->get();

Я отредактировал свой ответ, надеюсь, это поможет. Если нет, пожалуйста, опубликуйте свои ошибки и структуру таблицы.

Вы можете прочитать о соединениях здесь: https://laravel.com/docs/6.x/queries#joins

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...