2016-07-25 7 views
2

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

Однако $ form-> isValid() выполняется только при отправке формы (что происходит только в сообщении).

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

$form = $this->get('form.factory')->create(SchoolFormType::class, $school, $formOptions); 
$form->handleRequest($request); 
if ($form->isValid()) { 
    // ... 
} 

ответ

1

Вы можете моделировать Подавать с:

$form->handleRequest($request); 

$wasSubmitted = $form->isSubmitted(); 

if(!$wasSubmitted){ 
    $form->submit($form->getData(),false); 
} 

if ($form->isValid()) { 
    // ... 

    // next lines are to be sure that the form will always need to be submitted manualy : 
    if($wasSubmitted){ 
     $em->persist($entity); 
     $em->flush(); 

     return $this->render ... 
    } 
} 

return $this->render ... 

Смотрите метод представить в source code.

+1

Спасибо! Я пробовал $ form-> submit (null, false); но это дало мне ошибку csrf, и я не был уверен, как ее реплицировать. Работает как шарм! – tmas

Смежные вопросы