我有一个关于 MVC 路由的问题。
我在 module.config.php 中设置了我的路由,如下所示:
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/page/:page]',
'constraints' => array(
'page' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Trade\Controller\Album',
'action' => 'index',
'page' => 1,
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
),
),
),
),
有如下路线:
/album
/album/page/2
/album/edit/3
/album/add
在视图脚本中,我使用:
<a href="<?php echo $this->url('album/default', array('action'=>'edit', 'id' => $album->id));?>">Edit</a>
这导致
/album/page/1/edit/2
这不是我希望 url 看起来的样子。我希望网址看起来像 /album/edit/3
并且由于我没有在 url 参数数组中提供页码,因此我没想到会选择默认页面。
我确信有一种更智能的方法来设置所需的路由,并且会感谢任何指针。
彼得