Это первый раз, когда я пытался использовать формы с Symfony, и я полностью застрял. Я уверен, что это будет что-то простое.Неверная форма в Symfony без ошибок
У меня есть простой контроллер настроен как так (с использованием Symfony 2.7 и FOSRestBundle 2.0):
/**
* @View()
*/
public function postPredictionsAction(Request $request)
{
$form = $this->createFormBuilder(['id' => '1', 'description' => '2'])
->add('id', 'text')
->add('description', 'text')
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
return true;
}
print_r($request->request->all());
print_r($form->getData());
print_r((string) $form->getErrors(true, false));
return false;
}
Но моя форма всегда недействителен, даже если нет ошибки:
curl -X POST --data 'id=foo&description=bar' http://localhost:8080/bracket/predictions
Array
(
[id] => foo
[description] => bar
)
Array
(
[id] => 1
[description] => 2
)
false
Таким образом, похоже, что мои данные запроса не вписываются в форму, и по какой-то причине форма недействительна, даже несмотря на отсутствие ошибок, напечатанных вообще.
РЕДАКТИРОВКА: После много шума вокруг, кажется, что вызов handleRequest()
определил, что форма не была отправлена и поэтому не подтверждена - это означает, что я попал в описанную выше ситуацию.
Итак, вместо handleRequest()
Я могу заменить его на submit()
как на работу. Это описывается как устаревшие поведения по документации:
http://symfony.com/doc/2.7/cookbook/form/direct_submit.html#cookbook-form-submit-request
Так что я все еще явно делает что-то неправильно, но я не могу увидеть, что это из документации Symfony.
Спасибо, я должен был упомянуть, что я уже отключил систему CSRF в целом - также я бы ожидал увидеть ошибку CSRF из вызова getErrors(), если это проблема. –