从 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/home
或 www.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 作为路由名称,助手将采用当前匹配的路由名称,因此理论上它应该可以工作。
但不幸的是,我不能说如果路线是已经设置参数的段会发生什么,对不起。
我是 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/home
或 www.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 作为路由名称,助手将采用当前匹配的路由名称,因此理论上它应该可以工作。 但不幸的是,我不能说如果路线是已经设置参数的段会发生什么,对不起。