2011-09-30 108 views
0

使用Zend Framework我想使用一个帐户名称(:account)作为将调用购物篮控制器的子域名。当使用getParams()作为索引操作时,它会显示:account参数,但这不适用于购物篮控制器中的任何其他操作。如何在Zend Framework控制器中为每个动作制作子域路由?

这是我目前在引导代码:

$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)); 

预先感谢您的帮助和指导。

回答

0

实际上,你需要两个chained路线:

您的子路径
  • 负责一切的路由域后

    我用这个配置来设置此路线(虽然我映射所有子域到模块,但我想你可以修复这个;):

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