簡體   English   中英

Symfony Routing Regex:如何編寫可選字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM