2016-10-13 1 views
0

Когда я создаю зону брандмауэра для формы входа, я неожиданно не могу отправить другие формы на эту страницу.Symfony2 - не может отправлять другие формы на страницы с формой входа

В моем случае, в странице контактов я связаться с нами форма и она работает просто отлично, но когда я добавляю это security.yml:

firewalls: 
    contacts: 
     pattern: ^/contacts 
     anonymous: ~ 
     provider: main 
     context: primary_auth 
     form_login: 
      login_path:    /contacts 
      check_path:    /contacts 
      default_target_path: /authorization 
     remember_me: 
      secret: '%secret%' 
      lifetime: 31536000 

Моя контактная форма просто перестает работать (не может представить) , Когда я нажимаю кнопку отправки $contactForm->isSubmitted() и $contactForm->isValid(), оба возвращаются false.

Та же проблема возникает на домашней странице. Мои формы регистрации перестают работать, если я добавляю конфигурацию формы входа в брандмауэр для главной страницы.

Возможно, у кого-то была такая же проблема и знать решение?

+0

Вы создали именованную форму через службу 'form.factory'? Как создаются обе формы? Я предполагаю, что они оба имеют одно и то же имя, потому что вы создаете их с помощью метода '-> createFormBuilder' контроллера, который дает обе формы одинакового имени. – Rvanlaak

+0

@Rvanlaak, моя форма входа создается в виде с использованием простого

тега, такого как документация показывает: http://symfony.com/doc/current/security/form_login_setup.html –

+0

@Rvanlaak, я удалил регистрационную форму, но я все еще не возможность отправить контактную форму до тех пор, пока я не удалю брандмауэр. Я не уверен, что это форма ошибки. –

ответ

1

Ваша конфигурация ставит check_path позади брандмауэра уже, поэтому для того, чтобы выполнить пользователь проверки Войти уже должен войти в

Изменения конфигурации в путь, как /login-check, не включенный в pattern:.

firewalls: 
    contacts: 
     pattern: ^/contacts 
     # .. 
     form_login: 
      login_path:    /login 
      check_path:    /login-check 
      # ..