如何为Zend Framework控制器中的每个操作创建子域路由?

时间:2011-09-30 08:21:57

标签: zend-framework routes

使用Zend Framework我想使用帐户名(:account)作为将调用篮控制器的子域。当使用getParams()进行索引操作时,它会显示:account参数,但这不适用于篮子控制器中的任何其他操作。

这是我目前在引导程序中的代码:

    $front = Zend_Controller_Front::getInstance();
    $router = $front->getRouter();
    $domain_name = 'domain.com';
    $plainPathRoute = new Zend_Controller_Router_Route_Static('');        

    $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
                    ':account.' . $domain_name,
                    array(
                        'controller' => 'basket'  
                    )
    );
    $router->addRoute('account', $hostnameRoute->chain($plainPathRoute));

提前感谢您的帮助和指导。

1 个答案:

答案 0 :(得分:0)

您实际上需要两条chained路线:

  1. 您的子域路由
  2. 负责您域名后所有内容的路线
  3. 我使用此配置设置此路径(虽然我将所有子域映射到模块,但我想你可以解决这个问题;):

    'subdomain' => array(
        'type' => 'Zend_Controller_Router_Route_Hostname',
        'route' => ':module.localhost',
        'chains' => array(
            'index' => array(
                'type' => 'Zend_Controller_Router_Route',
                'route' => ':controller/:action/*'
            )
        )
    )