Прежде всего, я сожалею о названии, но я не мог сделать его более ясным.Что-нибудь, просто дайте мне знать, чтобы я мог отредактировать это.
Я хотел бы проверить, удовлетворяют ли несколько пользователей критериям говорения на определенном уровне языка.Для справки вы можете посмотреть справку по европейскому языку
У меня есть следующие варианты получения правильных пользователей с их языками:
// 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[]
.