多个控制器中的Symfony 3登录表单

时间:2018-04-05 16:31:56

标签: php forms symfony symfony-3.4

我按照this教程了解如何在Symfony 3中构建登录表单,一切正常。

但是我想在多个页面上使用相同的登录表单(“/”和“/ login”)。不幸的是,根据我在security.yaml中配置“login_path”和“check_path”的方式,我总是只能使用其中一个页面。

所以它是

form_login:
                  login_path: login
                  check_path: login

form_login:
                  login_path: /
                  check_path: /

我尝试专门为登录页面添加另一个防火墙,以便同时使用这两个防火墙,但是没有成功,我的/ login上的表单似乎会提交并重定向到default_target_path,但用户不会被记录in。我还尝试在控制器中的createForm函数中设置'action'变量,使登录表单甚至在索引页面上提交到/ login,但这也不起作用。

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:0)

您是否尝试使用其他名称创建第二个条目?我不确定它是否可行,但技术上允许使用不同名称的不同提供商。并且没有要求他们实际上有不同的提供者或不同的实现。

security:
    # ...

    firewalls:
        main:
            # ...
            form_login:
                login_path: login
                check_path: login
        alternative
            # ...
            form_login:
                login_path: /
                check_path: /

答案 1 :(得分:0)

如果用户未登录,您可以将用户重定向到登录页面。

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {

}

您可能只是渲染登录页面而不是重定向。