Гибкая маршрутизация в Zend - PullRequest
       0

Гибкая маршрутизация в Zend

1 голос
/ 02 октября 2010

Я еще не использовал Zend Router, поэтому не уверен, насколько это сложно или просто, но я думаю, что Zend гибкий, поэтому у него должен быть способ сделать это легко.

Итак, я создаю контроллер Cont с двумя действиями actone и acttwo. Это естественно дает мне

//the default index controller
site.com/                
site.com/index/index     

//and my controller
site.com/cont/index
site.com/cont/actone
site.com/cont/acttwo

Есть ли способ получить доступ к действию actone, которое находится в контроллере cont, используя маршрут, который выглядит следующим образом

site.com/actone

Я понимаю, что мог бы получить такой взгляд, создав отдельный контроллер с именем Actone, и это было бы его действием index, но это действие actone логически принадлежит контроллеру Cont, поэтому я хочу просто дать появление этого пути.

Ответы [ 2 ]

4 голосов
/ 02 октября 2010

Вы можете создать собственный маршрут ...

Через application.ini's - ресурс приложения маршрутизатора

resources.router.routes.route_title.route               = "/actone"
resources.router.routes.route_title.defaults.controller = "cont"
resources.router.routes.route_title.defaults.action     = "actone"
resources.router.routes.route_title.type                = "Zend_Controller_Router_Route_Static"

Или добавив его непосредственно к маршрутизатору.

$router = Zend_Controller_Front::getInstance()->getRouter();    
$router->addRoute('route_title', new Zend_Controller_Rotuer_Route_Static(
    '/actone',
    array(
        'controller' => 'cont',
        'action'     => 'actone'
    )
));
2 голосов
/ 02 октября 2010

Если бы вы могли сделать свой контроллер Cont контроллером по умолчанию, который, вероятно, справился бы с задачей.IIRC это в Zend_Controller_Dispatcher_Abstract, есть setDefaultControllerName (), а также setDefaultAction () и setDefaultModule ().

...