PHP和雄辩的匹配数组与数组

时间:2018-12-12 12:30:12

标签: php eloquent

我在尝试匹配2个数组时遇到问题(检查$ _POST数组是否包含数据库数组中包含的值)

  1. 数组: ['79','80'] (存储在我的数据库中)
  2. 数组: ['78','79','80'] (这是复选框的POST)

这是我的代码段

$filter = Course::GetAllCourses()->where('for_sites',2)->orderBy("set_date","DESC");
// I've tried
if ($request->getParam('level')) {

    $filter->where('groups',$request->getParam('level'));

}

// Also tried this resukt: nothing shows (no errors ) this works for a single value only though
foreach ($request->getParam('level') as $levels) {

    if ($request->getParam('level')) {

        $filter->where('groups','LIKE','%' . $levels . '%');

    }
}

// Also tried this shows everything doesn't matter what kind of 'level ' I've posted 

foreach ($request->getParam('level') as $levels) {

    if ($request->getParam('level')) {

        $filter->orWhere('groups','LIKE','%' . $levels . '%');

    }
}

$db_course = $filter->distinct()->get();

所以最终的比赛是:

如果我$ _POST数组为['78','79','80']的值,我想获得具有['78','79']或全部三个值甚至是1个蓝色的结果。 ['78']甚至可能吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在搜索 WhereIn

类似的东西:

$users = DB::table('users')
            ->whereIn('id', [1, 2, 3])
            ->get();

Reference