【发布时间】:2017-08-10 07:41:38
【问题描述】:
在 Symfony 应用程序中使用 path('logout') 和 logout_path() 有什么区别?
【问题讨论】:
-
我猜 logout_path() 返回注销路径的相对 url
-
@MélikZarkouna 其实还有一个
logout_url(),你可以用url('logout')。很奇怪,好像是重复的。
在 Symfony 应用程序中使用 path('logout') 和 logout_path() 有什么区别?
【问题讨论】:
logout_url(),你可以用url('logout')。很奇怪,好像是重复的。
当您使用path('logout') 时,您调用RoutingExtension::getPath。名称为 'logout' 的路由可以指向您定义的任何 URL——例如到'/lorem-ipsum' 并调用任何控制器的操作——例如DefaultController::loremIpsumAction.
当您使用logout_path() 时,您调用LogoutUrlExtension::getLogoutPath,它使用LogoutUrlGenerator 为当前防火墙生成注销 URL。
【讨论】:
logout_path()而不是path() ?
security.yml 配置和此 template error。
路径:
{{ path(name, parameters = [], relative = false) }}
path 返回给定路由的相对 URL(不包括方案和主机)。如果启用了相对,它将创建一个相对于当前路径的路径。 Linking to Pages 中的更多信息,在您的情况下,/logout 是您的路线,我建议您阅读有关 Routing 的更多信息以了解其组件和目的。
阅读路由以了解有关路由组件Routing 的更多信息。
从 Symfony 2.7 开始你可以使用logout_path
{{ logout_path(key = null) }}
key 是可选的,它的类型是 string
logout_path 为给定的防火墙生成一个相对的注销 URL。如果未提供密钥,则会为用户登录的当前防火墙生成 URL。
【讨论】: