从Zend Framework 2中的路由生成URL

时间:2015-01-08 20:33:00

标签: php zend-framework2

我是ZF2初学者并在我的第一个网站上工作。 我需要一个多语言网站,并在路由方面遇到一些麻烦。 我像这样配置了我的路线:

'lang' => array(
    'type' => 'segment',
    'options' => array(
        'route' => '/:lang',
        'constraints' => array(
            'lang' => 'en|it'
        ),
        'defaults' => array(
            'controller' => 'Application\Controller\Index',
            'action' => 'index'
        )
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'home' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/home',
                'defaults' => array(
                    'controller' => 'Application\Controller\Index',
                    'action' => 'index'
                )
            )
        ),
        'other routes' ...
    )
)

因此,我稍后可以使用/lang来设置翻译器。 (www.site.com/it/homewww.site.com/en/home

现在我需要在布局中添加链接以切换语言,因此我需要生成显示的同一页面的URL,但是将“it”切换为“en”,反之亦然。我怎样才能做到这一点?我可以从视图中以某种方式获得路线的以下部分('/home''/about''/show/gallery'等)吗?

1 个答案:

答案 0 :(得分:0)

我认为您只需在布局/视图中执行以下操作:

//using url view helper
echo $this->url(null, array('lang' => 'en'));

通过将null作为routename,helper将获取当前匹配的routename,因此理论上它应该可以工作。 但不幸的是,如果路线是已设置参数的段,sry,我无法说出会发生什么。