首先,很抱歉我的英语不好。问题如下:
我尝试在博客系统中添加和编辑帖子。我的伪代码:
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();
));
}