Добрый день, камрады!
Прошу помочь в следующем вопросе:
Переписываю сайт на модель MVC (изучаю), и пошел до фильтра товаров.
Раньше было несколько несколько групп "чекбоксов", с одинаковым "name" по типу:
<input type="checkbox" name="gender[]" value="Мужские">
<input type="checkbox" name="gender[]" value="Женские">
<input type="checkbox" name="gender[]" value="Детские">
Если было выбрано несколько чекбоксов с одинаковым name, то они передавались в GET в следующем виде:
?gender[]=Мужские&gender[]=Женские
данные воспринимались как массив gender, который хранит два значения (Мужские,Женские) и при передаче далее в класс обрабатывается, отправляется запрос к SQL, все работает.
Но при переписывании на MVC используется роутинг. И URL будет выглядеть следующим образом
localhost/marketAJAX/index/gender[]/Мужские/gender[]/Женские /material[]/Сталь/from/5000/
, где
marketAJAX - контроллер,
index - экшн,
gender[]/Мужские/gender[]/Женские/material[]/Сталь/from/5000/ — параметры
Но фишка в том, что теперь gender[] -- интерпретируется не как массив, а как строка и вместо массива с двумя значениями я получаю одну переменную gender[] в которую сначала присваивается значение "Мужские", а затем оно затирается и присваивается значение "Женские".
Если попробовать добавить к каждому name помимо названия число, например gender[1], gender[2], gender[3], то возникнут проблемы в SQL запросе, придется писать RegEx, чтобы выковырнуть эти [ххх].
Вопрос: регулярные выражения единственный выход? Думаю, что моя проблема имеет более элегантное решение.