Yii2 - 如何处理类似的路线

时间:2016-08-26 10:20:04

标签: yii yii2

我有以下路线:

'http://' . $domain . '/community-board/<topicName:\w+(-\w+)>/<id:\d+>' => 'board-posts/index',
'http://' . $domain . '/community-board/<topicName:\w+(-\w+)>/<postName:\w+(-\w+)><id:\d+>' => 'board-posts/view',

第一个路由始终被触发,我无法访问第二个路由。在yii中有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先,您可以删除http://' . $domain . '/,除非您希望仅针对特定域启用此规则。

我在第二条规则中看到了可能的错误。路线community-board/topic-main/post-SO-question39163975将按如下方式解析:

['topicName' => 'main', 'postName' => 'SO-question3916397', 'id' => 5]

我建议修改第二条规则中的正则表达式,如下所示: community-board/<topicName:\w+(-\w+)>/<postName:\w+(-\w+?)><id:\d+>(将?添加到postName属性以使RegExp变为惰性)。改变之后:

['topicName' => 'main', 'postName' => 'SO-question', 'id' => 39163975]

我有检查规则,看不到任何其他问题。