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

标签 php forms validation symfony

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

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

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 键)。 如何正确操作?

最佳答案

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

public function updatePost()
{
   ....

   if($form->isValid()){
        //yours update logic

       return $this->redirect(..);
   }

   return $this->render('create.html.twig', array(
       'form' => $form->createView();
   ));
}

关于php - Symfony 2 Form - 表单无效时刷新保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33389676/

相关文章:

php - Mysql内连接where值在另一个表中

php - 使用 Jquery、mysql 和 php,我需要一个下拉选择的结果来改变第二个下拉选择中的选择

javascript - 获取表单对象中动态输入元素的值

javascript - 在另一个 View 中渲染表单,表单未显示

forms - Symfony 2 : The option "validation_constraint" does not exist

php - 网站如何在不重新加载页面的情况下检查登录凭据?

php - Laravel 5.3 Blade foreach 循环 : show data in loop from two different database eloquent queries

php - mySQL COUNT 与两个表上的 JOIN

java - Spring Validation - 以编程方式绑定(bind)到 validator

javascript - 与另一个指令一起使用时,angularjs 验证器不起作用