#php #zend-framework2
#php #zend-framework2
Вопрос:
У меня есть следующий маршрут в конфигурации моего модуля:
/home[/:action][/:id][/:page][/:service][/:sort]
Когда я пытаюсь пропустить некоторые параметры, такие как страница и / или сервис, и просто передать переменную сортировки, она устанавливается как страница. Этот маршрут работает отлично:
home/index/1/1
и я получаю:
action = index
page = 1
service = 1
но когда я пропускаю некоторые параметры и хочу только передавать действие и сортировать:
home/index /asc
Я получаю:
action = index
page = asc
Я создаю свою ссылку следующим образом:
$this->url(null, array('sort' => $sort), array(), true);
Есть ли какой-нибудь правильный способ сделать это правильно и так, как я хочу?
В ZF это было намного проще, потому что это был URL типа: index / sort / asc и т. Д. Ключ параметра и его значение. Возможно ли это достичь в ZF2?
Комментарии:
1. $this->url(‘name_of_your_route’, array(‘sort’ => $sort), array(), true);
2. @Chu Khanh Van: Нет. Последний параметр — true — задает имя маршрута.
3. На мой взгляд, рекомендуется всегда указывать имя маршрута, однако здесь проблема не в этом. Есть ли у вас какие-либо ограничения на параметры вашего маршрута в определении?
Ответ №1:
при использовании дополнительных параметров в маршруте они должны иметь имя или быть включены в другой дополнительный параметр :
'/home[/:action[/id/:id][/page/:page][/service/:service][/sort/:sort]]'