2011-12-16 3 views
0

У меня есть следующий код:Zend Framework имя хоста маршрутизации

$route = new Zend_Controller_Router_Route_Hostname("test", array('controller'=>'mycontroller')); 

Это прекрасно работает, и перенаправляет запросы к действию индекса в «mycontroller».

Что мне нужно сделать, чтобы быть в состоянии назвать следующий URL:

http://test/myaction 

Где действие называется это mycontroller-> MyAction

Кто-нибудь есть ключ?

Спасибо.

ответ

0

Из documentation

HostName маршрутов не могут, но не должны использоваться как есть. Причина этого в том, что маршрут имени хоста будет соответствовать любому пути. Итак, вам нужно связать маршрут маршрута с маршрутом имени хоста. Это делается, как в примере, путем вызова $hostnameRoute->chain($pathRoute);. При этом $hostnameRoute не изменяется, но возвращается новый маршрут (Zend_Controller_Router_Route_Chain), который затем может быть передан маршрутизатору.

Учитывая, что в вашем маршруте хоста нет действительных переменных компонентов, это довольно избыточно. Вам лучше просто придерживаться Zend_Controller_Router_Route или Zend_Controller_Router_Route_Static, если на ваших маршрутах нет переменных частей.

+0

Я не уверен, что понимаю, что вы имеете в виду. Будет несколько хост-маршрутов. Некоторые, как и пример, будут иметь переменные действия. Я хочу добиться того, чтобы хост определил контроллер, и если не указан путь, используйте действие индекса. Если какое-либо действие указано. Итак: 'code'http: // Тест/ использовать бы mycontroller и действие индекса, в то время как: ' code'http: // тест/MyAction/ будет использовать mycontroller и действие MyAction. –

Смежные вопросы