2017-09-01 40 views
2

在我的Phpdoc中,我有这样的路线设置。如何编写正确的路由正则表达式?

* @route /v1/posts/<type:(news|article|release|about)?> 

如何使它在“帖子”之后的斜杠只有在类型通过时才被插入。

+1

尝试'/ V1 /职位(:/ <类型:(新闻|文章|发布|约)>?)?' –

+0

非常感谢你:) –

+0

高兴它为你工作。请考虑通过点击左侧的✓接受答案(请参阅[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work))和 - 接受后 - upvoting如果我的回答证明对你有帮助(参见[如何在堆栈溢出?](http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)) 。 –

回答

1

您可以制作type交替组义务和一个可选的非捕获组包裹/type..部分:

/v1/posts(?:/<type:(news|article|release|about)>)? 

现在,

  • /v1/posts - 相匹配的文本串
  • (?:/<type:(news|article|release|about)>)? - 匹配1次或0次出现(即该部分可能丢失)
    • / - 斜线
    • <type:(news|article|release|about)> - <type:,那么任何捕获组内的备选方案,然后>