[英]wherein condition with multidimensional array in laravel 8
我想在 Laravel 查询中将 whereIn 与多维数组一起使用。
我的主要要求是
有一个多维数组就像
$language = [
[ 'name' => 'english', 'level' => 'advance', 'lang_id' => '8' ],
[ 'name' => 'urdu', 'level' => 'fluant', 'lang_id' => '10' ],
[ 'name' => 'germany', 'level' => 'basic', 'lang_id' => '12' ]
]
$app_lang_arr = [];
$app_lang_arr_level = [];
foreach($language as $lang)
{
array_push($app_lang_arr, $lang['lang_id']);
array_push($app_lang_arr_level, $lang['level']);
}
$applicant = $user_arr->whereHas('LanguageSkills', function ($query) use ($app_lang_arr, $app_lang_arr_level) {
$query->whereIn('language_id', $app_lang_arr)->whereIn('level', $app_lang_arr_level);
})->where('activate_deactivate', 1)
->orderBy('updated_at', 'DESC')
->get();
现在我的要求是
select all from users join language_skills on language_skill.language_id == user.language_id where language_skill.language_id == $lang['lang_id'] AND language_skill.level == $lang['level'];
此查询在循环中。 我想在 Laravel 中将此查询与 whereIn 一起使用。 或者还有其他方法可以完成这项任务吗?
我猜你可以在你的子句中使用orWhereHas
foreach($language as $lang)
{
$user_arr->orWhereHas('LanguageSkills', function ($query) use ($lang) {
$query->where('language_id', $lang['lang_id'])
->where('level', $lang['level']);
});
}
$applicant = $user_arr->where('activate_deactivate', 1)
->orderBy('updated_at', 'DESC')
->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.