Zend Framework: Могу ли я установить глубину для параметров URL? - PullRequest
0 голосов
/ 10 февраля 2011

Я хотел бы получить только один параметр.Для example site.ru/controller/action/param1/value/

Но если я запрашиваю следующий URL-адрес: site.ru/controller/action/param1/value/param2/value2/param3/value4/ по умолчанию у меня не возникает никаких ошибок.

Можно ли установить глубину для параметров URL-адреса?Или я должен сделать это вручную через разбор URL?

Ответы [ 3 ]

1 голос
/ 10 февраля 2011

Маршрут по умолчанию допускает любое количество параметров после :module/:controller/:action (или просто :controller/:action) частей.

Если вы хотите ограничить это, создайте свой собственный маршрут.

См. http://framework.zend.com/manual/en/zend.controller.router.html

0 голосов
/ 12 февраля 2011

Рассмотрим этот код:

$route = new Zend_Controller_Router_Route(
            '/:controller/:action/:id',
            array('controller'=>'index','action'=>'index','id'=>''), //default values
            array('controller'=>'[a-zA-Z-]','action'=>'[a-zA-Z-]+','id'=>'([0-9]+)') //patterns to match values
);

Этот маршрут будет запущен, только если запрос состоит из имени контроллера, имени действия и номера идентификатора. Если будут переданы другие параметры, маршрут не будет запущен.

0 голосов
/ 10 февраля 2011

По умолчанию количество пар параметров =>, используемых в URL-адресе, не ограничено.

Однако вы можете создавать собственные маршруты, если хотите ограничить параметры URL-адреса

...