Php Zend Framework 2从路由获取URL
我要做的是使用 我尝试生成的URL应该是 my website.com/app/####(其中##等于“所有者ID”) 当我像这样使用视图辅助对象生成该视图时会发生什么:Php Zend Framework 2从路由获取URL,php,routing,zend-framework2,Php,Routing,Zend Framework2,我要做的是使用 我尝试生成的URL应该是 my website.com/app/####(其中##等于“所有者ID”) 当我像这样使用视图辅助对象生成该视图时会发生什么: $this->url('mymodule', array('action'=>'show', 'ownerID'=>'28')); 是否只生成“my website.com/app”,但我希望根据路由配置生成“my website.com/app/28” 下面是我的module.config.php文件中的
$this->url('mymodule', array('action'=>'show', 'ownerID'=>'28'));
是否只生成“my website.com/app”,但我希望根据路由配置生成“my website.com/app/28”
下面是我的module.config.php文件中的路由信息
'router' => array(
'routes' => array(
'mymodule' => array(
'type' => 'segment',
'options' => array(
'route' => '/app',
'defaults' => array(
'controller' => 'MyModule\Controller\MyModule',
'action' => 'show',
),
),
// Defines that "/app" can be matched on its own without a child route being matched
'may_terminate' => true,
'child_routes' => array(
'archive' => array(
'type' => 'segment',
'options' => array(
'route' => '/:action[/:ownerID[/:clientID]]',
'defaults' => array(
),
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'ownerID' => '[0-9]+',
'clientID' => '[0-9]+',
)
),
),
'single' => array(
'type' => 'segment',
'options' => array(
'route' => '/:ownerID[/:clientID]',
'defaults' => array(
'action' => 'show',
),
'constraints' => array(
'ownerID' => '[0-9]+',
'clientID' => '[0-9]+',
)
),
),
)
),
)
),
使用$this->redirect()->toRoute时也会发生相同的行为
当您手动键入它们时,所有路由都会按预期工作,这只是URL的生成让我感到困惑。要更直接地回答这个问题,它不会做您期望的事情,因为您只是将顶级路由名称(“mymodule”)传递给URL帮助器。ownerID是子路由的一部分 你真正想要的是:
$this->url('mymodule/archive', array('action'=>'show', 'ownerID'=>'28'));
(或者可能是
mymodule/single
,具体取决于您想要的输出)。要更直接地回答这个问题,它不会做您期望的事情,因为您只是将顶级路由名称(“mymodule”)传递给URL帮助器。ownerID是子路由的一部分
你真正想要的是:
$this->url('mymodule/archive', array('action'=>'show', 'ownerID'=>'28'));
(或者可能是mymodule/single
,具体取决于所需的输出)