Так что у меня этот маршрут:Symfony2 - Форма представить не работает в зависимости от маршрута страницы
/**
* @Route("/", name="homepage")
*
* @param Request $request
*
* @return Response
*/
public function indexAction(Request $request)
{
// ...
На этой странице является правильной формой, которая работала некоторое время назад.
{{ form_start(company_sign_up_form, {'action': path('homepage', { 'sign_up': 'company' }) }) }}
Здесь sign_up
это параметр, который я прохожу через URL.
Пример: http://localhost/?sign_up=company
Когда я вношу форму я перенаправлены на страницу без этого параметра sign_up
и оба $form->isSubmitted()
и $form->isValid()
дают мне false
.
Но когда я меняю маршрут от @Route("/", name="homepage")
до @Route("/something", name="homepage")
, работа выполняется очень хорошо.
Единственный аналогичный маршрут, который мог бы конфликт является динамичным:
/**
* @Route("/{page}", name="public", requirements={"page": "about|programs|contacts"})
*
* @param Request $request
* @param $page
*
* @return Response
*/
public function publicAction(Request $request, $page)
{
Я попытался изменить этот маршрут к другому, но это не решает мою проблему.
Кто-нибудь знает о проблеме, почему моя форма не соответствует правильному маршруту?
UPDATE
Так что я преодолел проблему, изменив маршрут моя форма в и относится.
/**
* @Route("/{page}", name="homepage", defaults={"page": ""}, requirements={"page": "|home"})
*
* @param Request $request
*
* @return Response
*/
public function indexAction(Request $request)
{
Так что в этом случае я могу получить доступ к домашней странице по http://localhost/
и http://localhost/home
так, если я изложу действие формы для /home
, моя форма успешно отправлен.
В любом случае, это не решение или ответ, я оставляю его как есть и жду лучшего решения.
ваша форма проверки не работает. Вероятно, это работает в publicAction с '/ something', потому что это действие не проверяет действительную (?) Форму типа 'indexAction'. Проверьте ограничения на сущность, которую вы сохраняете в этой форме. Также, если вы публикуете свой тип формы и свой класс сущностей, здесь он может быть лучше отлажен. Я не думаю, что это связано с вашей маршрутизацией. –
Но почему я не получаю параметр «sign_up», который передаю с помощью формы action attr? Обычно, когда ограничение терпит неудачу, я все равно перенаправляюсь с параметром I, переданным с действием формы. –