Я создаю расширенный табличный фильтр, используя Laravel.Клиент отправляет массив фильтров на сервер, чтобы применить их к модели и отправить обратно результаты.
На стороне сервера я использую следующий код для генерации массива условий, которые будут использоваться в предложении where:
$conditionArray=array();
foreach($filtersList as $filter) {
$whereArray[]=array($filter['Column'], $filter['Condition']), $filter['Value']);
}
$data = User::where($conditionArray)->get();
Это работает, как и ожидалось, для простых операторов (=
; <=
; >=
; !=
), но когда я пытаюсь использовать расширенные операторы (BETWEEN
; IN
),запрос не выполнен.
Мой вопрос: как добавить IN
и BETWEEN
к предложению WHERE
?Есть ли лучший подход для достижения того, что я пытаюсь сделать?