繁体   English   中英

如何在Symfony 3.4中找到当前的路由模式?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM