PHP & Eloquent сопоставить массив с массивом - PullRequest
0 голосов
/ 12 декабря 2018

У меня проблема с сопоставлением двух массивов (проверьте, есть ли в массиве $ _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();

Итак, конец игры:

Если i $ _POST значения массива ['78', '79 ',' 80 '] я хочу получить результаты, которые имеют [' 78 ',' 79 '] или все три значения или даже только один синий, например, [' 78 '] это вообще возможно?

1 Ответ

0 голосов
/ 12 декабря 2018

Я думаю, что вы ищете Где

Что-то вроде:

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

Ссылка

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