我正在将 Symfony 从 3.4 升级到 4.3,我遇到的情况是每条路由都与控制器和方法正确匹配,但随后请求到达RedirectableCompiledUrlMatcher
并将正确的参数替换为
_controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::urlRedirectAction
这会触发各种其他事情,例如调用参数转换器、访问防火墙和其他与路由相关的事情,因为匹配的路由不正确,所以不应该这样做。
在不替换正确参数的情况下继续调试 3.4 项目。
我的问题是这现在是否是正确的请求流(即每条路由都必须通过 urlRedirectAction)并且我需要配置其他东西,或者有什么方法可以避免调用,我猜,RedirectableCompiledUrlMatcher
?
是否有可能发生这种情况,因为RedirectableUrlMatcher
它是默认匹配器\Symfony\Component\Routing\Router
,为什么它是默认匹配器?有没有机会用UrlMatcher
3.4 中的普通替换它?
正是这一行vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:63
,我$ret
正确匹配了我的控制器$this->redirect()
并被调用,它用 Symfony RedirectController 替换了我的控制器。特质是RedirectableCompiledUrlMatcher
类的一部分