forms - Symfony:调用表单 handleRequest 但避免实体持久化

标签 forms symfony

我有一个对搜索表单和表单类型建模的实体,我将该表单仅用于搜索目的,我不希望在数据库中修改该实体,因此,当我这样做时:

$formModelEntity = $em->getRepository('AppBundle:SearchForm')
                      ->findOneBy(array('name' => 'the_model'));
$formModelForm = $this->createForm(new SearchFormType(), $formModelEntity, array('action' => $this->generateUrl('dosearch'), 'method' => 'POST'));
$formModelForm->handleRequest($request); //or ->submit($request);
if ($formModelForm->isValid())
{
     $formInstanceEntity->setFieldsFromModel($formModelEntity);
     $em->persist($formInstanceEntity);
     $em->flush();
}
$formModelEntity更改被持久化到数据库,我想避免这种情况但仍然想利用 handleRequest能够使用所有 POST 值更新实体(用于只读目的)。

这可能吗?

最佳答案

在 symfony 中,你只需要持久化一个新实体。如果您更新实体管理器找到的现有实体,然后刷新,即使您没有保留它,您的实体也会在数据库中更新。

编辑:您可以在使用以下代码行刷新实体之前从实体管理器中分离实体:

$em->detach($formModelEntity);

关于forms - Symfony:调用表单 handleRequest 但避免实体持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34180195/

相关文章:

html - 在此上下文中,Symfony4 元素图例不允许作为元素 div 的子元素

symfony - this->getUser() 验证表单后返回 null

javascript - 检查表单输入字段是否没有改变

javascript - 如何将对象映射到表单字段?

php - 我的表单请求有什么问题导致简单的验证规则不起作用?

symfony - 将引用与继承一起使用时出现奇怪的 Doctrine ODM 异常

php - Symfony 和 Phantom JS 包 - 路由错误

asp.net - 如何在asp.net中使用jquery表单插件?

javascript - 使超链接成为表单提交按钮

php - Symfony2 Twig 迭代器