Проверить наличие нескольких мест в нескольких полях - PullRequest
0 голосов
/ 22 сентября 2018

Прежде всего, я сожалею о названии, но я не мог сделать его более ясным.Что-нибудь, просто дайте мне знать, чтобы я мог отредактировать это.

Я хотел бы проверить, удовлетворяют ли несколько пользователей критериям говорения на определенном уровне языка.Для справки вы можете посмотреть справку по европейскому языку

У меня есть следующие варианты получения правильных пользователей с их языками:

        // Check for language filter
        if($request->has('language')){
                /*
                 * havingRaw() is working without a groupBy because of `ONLY_FULL_GROUP_BY`
                 * disabled at database.php. I couldn't make it work without disabling this
                 * mode
                 * */
                $candidates->whereHas('user.languages', function ($q) use ($request) {
                     $q->whereIn('language_id', $request->language);
                     $q->havingRaw('count(language_id) >= ' . count($request->language));
                });
        }

$candidates - это коллекция JobsApplications.Я хотел бы иметь возможность сделать что-то вроде:

        // Check for language filter
        if($request->has('language')) {
            $candidates->whereHas('user.languages', function ($q) use ($request) {
                $q->whereIn('language_id', $request->language);
                $q->havingRaw('count(language_id) >= ' . count($request->language));
                $q->where('speaking', '>=', 'B1');
                // apply the filter for each field (speaking, speaking, writting)
            });
        }

Как я мог бы сделать это?Стоит отметить, что $request->language - это массив, в котором у меня есть еще три массива $request->speaking[], $request->writting[] и $request->comprehension[].

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