[英]How to find the current route pattern in Symfony 3.4?
像在security.yml中一样- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
我想在路由模式比/admin
延迟的情况下在eventListener中执行代码
如果您正在收听Symfony内核事件,则可以通过在事件上调用getRequest()
来从事件中检索当前请求。 您可能必须检查它是否是当前请求,即您没有在处理子请求,但是在此我将省略它。
一旦有了请求,检查路由是否与模式匹配或未被模式捕获就像执行preg_match()
一样简单,或者在更简单的情况下,只需进行如下字符串比较:
if (strpos($request->getPathInfo(), '/admin/') === 0) {
return
}
// Do your thing
当您的路由以/admin/
开头时,这将跳过事件,并在不符合此管理模式的情况下执行您输入的内容而不是注释。
如果要检查某个路由名称是否匹配,还可以从请求中获取_route
属性:
$routeName = $request->attributes->get('_route');
然后,您可以检查路由器以获取有关该路由的其他信息,处理路由名称,例如,通过检查某个前缀并执行其他所需的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.