[英]Symfony Routing Regex: How to write an optional character?
我對路由配置中的symfony正則表達式模式有點麻煩。
我想匹配/keyword
和/keyword/
URL。 /
字符是可選的。
這是我的模式:
pattern: /{keyword}/?
/keyword/
匹配模式,而/keyword
不匹配。
我該怎么寫這個模式?
如果添加尾部斜杠,則它是可選的 - 用戶將從沒有斜杠的路徑重定向到帶有它的路徑。 因此, /{keyword}/
pattern適用於/{keyword}
和/{keyword}/
。
但是,如果您使用尾部斜杠定義它 - /{keyword}
- 它僅適用於/{keyword}
。
我認為您不能在路線中使用RegEx模式。 可以要求keyword
具有特定的RegEx模式,但這是另一回事。
如果您正在使用YML,那么我認為最好的辦法是擁有兩條不同的路線:
route1:
pattern: /{keyword}
...
route2:
pattern: /{keyword}/
...
如果您正在使用注釋,則可以將它們都放在控制器操作的頂部:
/**
* @Route("/{keyword}");
* @Route("/{keyword}/");
*/
在您的函數使用注釋的控制器中:
/**
* Function
*
*
* @Route("your/route/{keyword}")
* @Route("your/route/{keyword}/")
*/
並且您將能夠使用這兩個路徑訪問此功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.