我需要在zend framework 2项目中创建一个路径,帮助我创建这些URL:
代码:
<?php
return array (
'router' => array (
'routes' => array (
'username' => array (
'type' => 'hostname',
'options' => array (
'route' => ':username.test.:tld',
'constraints' => array(
'username' => '[a-zA-Z][a-zA-Z0-9_-]*',
'tld' => '[com|net]*',
),
'defaults' => array (
'controller' => 'Application\Controller\Index',
'action' => 'show',
'tld' => 'com'
)
)
),
'home' => array (
'type' => 'hostname',
'options' => array (
'route' => 'www.test.:tld',
'constraints' => array(
'tld' => '[com|net]*',
),
'defaults' => array (
'controller' => 'Application\Controller\Index',
'action' => 'index',
'tld' => 'com'
)
)
),
)
),
在某些情况下,当我调用http://username.test.com网址时,我需要通过网址助手将用户重定向到http://www.test.com。
更新:
例如,zfUser具有为用户提供服务的特定路由:
当应用程序从http://username.test.com
开始时执行此代码<a href="<?php echo $this->url('zfcuser') ?>" title="Profilo"><i class="fa fa-user"></i><?php echo $this->translate('Your Profile') ?></a>
它创建了这样的链接:
我希望如此:
我怎么做?
答案 0 :(得分:1)
此处的“问题”是您要将ZfcUser路由设置为home
路由的子路由。但是,ZfcUser只将路由设置为root,而不是你的child_routes。
解决方案是使用“原型”和chain_routes
键。它没有文档记录,但您可以在this PR中阅读一些信息。
基本上,将顶级路由(“home”和“username”)转换为原型,并为ZfcUser路由设置chain_routes
密钥。