сравнить два много ко многим отношениям в Laravel - PullRequest
0 голосов
/ 05 октября 2018

7 и пользователь класса DB для фильтрации результатов из базы данных.

$profiles = DB::table('profiles')->where('status_id', '=', 1)
        ->when($genderCheckbox, function($query) use ($vacature){
            return $query->where('gender_id', '=', $vacature->gender_id);
        })
        ->when($salaryCheckbox, function($query) use ($vacature){
            return $query->where('min_salary', '<=', $vacature->salary)->where('max_salary', '>=', $vacature->salary);
        })
        ->when($ageCheckbox, function ($query) use ($vacature){
            return $query->whereDate('birthday', '<', Carbon::today()->subYear($vacature->min_age))->whereDate('birthday', '>', Carbon::today()->subYear($vacature->max_age));
        })
        ->when($educationCheckbox, function ($query) use ($viableEducationArray){
            return $query->whereIn('done_education_id', $viableEducationArray);
        })
        ->when($timeCheckbox, function ($query) use ($vacature){
            return $query->where('shift_id', '=', $vacature->shift_id)->orWhere('shift_id', '=', null);
        })
        ->when($licenseCheckbox, function ($query) use ($vacature){
            if ($vacature->license_type_id == 1){
                return $query->where('license_type_id', '>=', $vacature->license_type_id);
            }elseif ($vacature->license_type_id == 2){
                return $query->where('license_type_id', 2)->orWhere('license_type_id', 4);
            }elseif ($vacature->license_type_id == 3){
                return $query->where('license_type_id', 3)->orWhere('license_type_id', 4);
            }elseif ($vacature->license_type_id == 4){
                return $query->where('license_type_id', 4);
            }
        })
        ->when($districtCheckbox, function ($query) use ($vacature){
            return $query->where('district_id', $vacature->district_id);
        })
        ->when($residenceCheckbox, function ($query) use ($vacature){
            return $query->where('residence_id', $vacature->residence_id);
        })
        ->get();

До сих пор это работало нормально.Я настроил 3 таблицы: пользователи, дни и вакансии.Пользователи могут быть доступны в течение многих дней.Работа может также потребовать, чтобы пользователь присутствовал в течение определенного дня.На этом этапе я создаю две сводные таблицы.Вопрос в том, как заставить пользователей, которые выбрали дни, соответствовать критериям работы соискателя.

Заранее спасибо

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