在 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'等)吗?

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

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

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