从 Zend Framework 2 中的路由生成 URL

Generating URL from route in Zend Framework 2

我是 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' 等)?

我认为您可以在 layout/view 中执行以下操作:

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

通过将 null 作为路由名称,助手将采用当前匹配的路由名称,因此理论上它应该可以工作。 但不幸的是,我不能说如果路线是已经设置参数的段会发生什么,对不起。