Symfony 2表单-表单无效时的刷新保护


Symfony 2 Form - refresh protection when form is not valid

首先,很抱歉我的英语不好。问题如下:

我尝试在博客系统中添加和编辑帖子。我的伪代码:

private function getPostForm()
{
    $form=$this->createFormBuilder()
    ->add(...
}
public function addPost()
{
   $form=$this->getPostForm... (is a createFormBuilder
   // form to create new post
   // display form to add - send to updatePost
}
public function editPost()
{
   $form=$this->getPostForm... (is a createFormBuilder
   // get post id and display form to edit post
   // send to updatePost
}
public function updatePost()
{
   // get data from post and validate
   $form->bind(...
   // if validate is true => save
   if($form->isValid())....
   // if not => get errors and display
   else { 
   // redirect and display errors and post data
}

我的问题是,当表单无效时,我想重定向用户添加/编辑帖子并显示错误,因为用户无法刷新页面(例如F5键),而数据将被发送且无效。如何正确操作?

也许,你应该这样做。如果一切正确,则进行更新和重定向,如果验证失败,则再次显示视图

public function updatePost()
{
   ....
   if($form->isValid()){
        //yours update logic
       return $this->redirect(..);
   }
   return $this->render('create.html.twig', array(
       'form' => $form->createView();
   ));
}