gpt4 book ai didi

symfony - 如何在 Symfony2 中使路由不区分大小写?

转载 作者:行者123 更新时间:2023-12-04 02:51:35 26 4
gpt4 key购买 nike

Symfony2 中是否有允许使用大小写Insensitive 路由的配置?

例如,下面的路由应该被视为相同:

www.exmaple.com/all 
www.exmaple.com/ALL

有一个pull request about this ,但没有提及如何实现它。

最佳答案

从 Symfony2.4 开始,您现在可以为您的路由定义条件并使用表达式语言进行复杂检查。参见 Router: Completely Customized Route Matching with Conditions文档。

另一种解决方案是覆盖路由编译器类以更改/扩展路由匹配器的 php 编译:

contact:
path: /{media}
defaults: { _controller: AcmeDemoBundle:Main:contact, media: organic }
requirements:
media: email|organic|ad
options:
compiler_class: MyVendor\Component\Routing\CaseInsensitiveRouteCompiler

参见 Symfony\Component\Routing\RouteCompiler类。

或者,正如 fabpot 在拉取请求评论中所说,您可以覆盖 Request::getPathInfo[1] 方法以始终返回小写字符串(使用 setFactory[2] 覆盖默认请求类)。

*1 github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Request.php#L866

*2 github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Request.php#L402

关于symfony - 如何在 Symfony2 中使路由不区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com