我想创建第二个form_login来验证我的用户,但使用相同的模式。 这是我的security.yml
的一部分frontend:
context: frontend
pattern: ^/
form_login:
provider: fos_clientbundle
csrf_provider: form.csrf_provider
login_path : client_login
check_path : client_check
failure_path : null
default_target_path : client_userprofile
form_login:
provider: fos_clientbundle
csrf_provider: form.csrf_provider
login_path : ecommerce_front_checkout
check_path : ecommerce_check
failure_path : null
default_target_path : ecommerce_front_checkout
logout:
path : client_logout
target : client_login
anonymous: true
但它不起作用!! 我在网上搜索但我找不到解决方案。
要求用户可以通过主登录页面连接,也可以在另一个页面上进行连接,如电子商务页面!!
我希望你能帮助我。 非常感谢你
答案 0 :(得分:0)
您可以创建两个不同的控制器(或Actions),它们都扩展了BaseSecurityController,只是覆盖了renderLogin动作(如果你需要覆盖一些东西,还可以覆盖任何其他动作)。
在路由
中定义两个控制器的routing.yml:
login:
path: /{_locale}/login
defaults: { _controller: ApplicationSonataUserBundle:SecurityFOSUser1:login }
loginForm:
path: /{_locale}/login_frm
defaults: { _controller: ApplicationSonataUserBundle:AnotherSecurityFOSUser1:login }
然后只需在树枝上显示表格:
{% render url('loginForm') %}
答案 1 :(得分:0)
我找到了解决方案。非常容易! 在我的第二种形式中,我必须在我的表单中添加default_target_path和failure_path,例如:
<input type="hidden" name="_target_path" value="ecommerce_front_checkout" />
<input type="hidden" name="_failure_path" value="ecommerce_front_checkout" />
非常感谢你的帮助!!