Zend framework2 ZF2-具有重叠模式的两条路由
我的问题涉及Zend框架2。我有两条有点重叠的路线-一条是:Zend framework2 ZF2-具有重叠模式的两条路由,zend-framework2,zend-route,Zend Framework2,Zend Route,我的问题涉及Zend框架2。我有两条有点重叠的路线-一条是: /announcements/index[/:type][/:status] 另一方面: /announcements[/:action][/:id] 它们在配置中的定义顺序与上面相同 其目的是,我的几乎所有路线都有相同的模式,即action+ID,但对于显示项目列表的索引页面,我希望有过滤的可能性-我希望用户能够按类型和状态(接受/拒绝/等待审核)过滤公告。问题是,由于某种原因,当我转到/announces或/announces
/announcements/index[/:type][/:status]
另一方面:
/announcements[/:action][/:id]
它们在配置中的定义顺序与上面相同
其目的是,我的几乎所有路线都有相同的模式,即action+ID,但对于显示项目列表的索引页面,我希望有过滤的可能性-我希望用户能够按类型和状态(接受/拒绝/等待审核)过滤公告。问题是,由于某种原因,当我转到/announces或/announces/index时,路由器选择第二条路由作为活动路由。解决这个问题的最好办法是什么
谢谢。儿童路线是一条可行之路,但是您可以通过定义具有自己路线的特殊情况来简化您的生活 在我的示例中,“索引”子路由在“默认”之前定义,这意味着路由器将首先匹配此路由
'announcements' => array(
'type' => 'Literal',
'options' => array(
'route' => '/announcements',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index'
)
),
'may_terminate' => true,
'child_routes' => array(
'index' => array(
'type' => 'Segment',
'options' => array(
'route' => '/index[/:type][/:status]',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index',
),
),
'may_terminate' => true,
),
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '/:action/:id',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
),
),
'may_terminate' => true,
),
),
),
儿童路线是一条路要走,但是您可以通过定义具有自己路线的特殊情况来简化您的生活 在我的示例中,“索引”子路由在“默认”之前定义,这意味着路由器将首先匹配此路由
'announcements' => array(
'type' => 'Literal',
'options' => array(
'route' => '/announcements',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index'
)
),
'may_terminate' => true,
'child_routes' => array(
'index' => array(
'type' => 'Segment',
'options' => array(
'route' => '/index[/:type][/:status]',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index',
),
),
'may_terminate' => true,
),
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '/:action/:id',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
),
),
'may_terminate' => true,
),
),
),
儿童路线是一条路要走,但是您可以通过定义具有自己路线的特殊情况来简化您的生活 在我的示例中,“索引”子路由在“默认”之前定义,这意味着路由器将首先匹配此路由
'announcements' => array(
'type' => 'Literal',
'options' => array(
'route' => '/announcements',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index'
)
),
'may_terminate' => true,
'child_routes' => array(
'index' => array(
'type' => 'Segment',
'options' => array(
'route' => '/index[/:type][/:status]',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index',
),
),
'may_terminate' => true,
),
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '/:action/:id',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
),
),
'may_terminate' => true,
),
),
),
儿童路线是一条路要走,但是您可以通过定义具有自己路线的特殊情况来简化您的生活 在我的示例中,“索引”子路由在“默认”之前定义,这意味着路由器将首先匹配此路由
'announcements' => array(
'type' => 'Literal',
'options' => array(
'route' => '/announcements',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index'
)
),
'may_terminate' => true,
'child_routes' => array(
'index' => array(
'type' => 'Segment',
'options' => array(
'route' => '/index[/:type][/:status]',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
'action' => 'index',
),
),
'may_terminate' => true,
),
'default' => array(
'type' => 'segment',
'options' => array(
'route' => '/:action/:id',
'defaults' => array(
'controller' => 'Application\Controller\Announcements',
),
),
'may_terminate' => true,
),
),
),
谢谢alex,我删除我的答案是因为它和你一样:)谢谢alex,我删除我的答案是因为它和你一样:)谢谢alex,我删除我的答案是因为它和你一样:)谢谢alex,我删除我的答案是因为它和你一样:)