2015-07-13 45 views
0

用户提交(未完成)表单后,我希望表单显示已输入的数据+错误消息。Silex:无效提交后输入数据填充表单

使用此代码,表单提交表单后是空的:

$request = $app['request']; 

$form = $app['form.factory']->createBuilder('form') 
    ->add('name', 'text', array('label' => 'Ihre Name:')) 
    ->add('comment', 'text', array('constraints' => new Assert\Length(array('min' => 15)))) 
    ->getForm(); 

$twig_context = array('form' => $form->createView()); 

$form->handleRequest($request); 

if ($form->isValid()) { 
    $data = $form->getData(); 
    return 'valid!'; 
    // Send form... 
} else { 
    // display the form 
    return $app['twig']->render('contact.html.twig', $twig_context); 
} 

嫩枝模板:

{{ form_start(form) }} 
{{ form_widget(form) }} 
<div> 
    <input type="submit" value="Send" /> 
</div> 
{{ form_end(form) }} 

回答

1

你应该最后创建表单视图,在渲染之前(可能是正确的你的模板)。在你的情况下,视图是在应用Request的数据之前创建的。

此:

$twig_context = array('form' => $form->createView()); 

$form->handleRequest($request); 

应该是:

$form->handleRequest($request); 

而且你的渲染方法应该是:

return $app['twig']->render('contact.html.twig', 
    array(
     'form' => $form->createView() 
    ) 
); 
+0

作品,谢谢! – user2345998

相关问题