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

韦伯

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

$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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Symfony 2-从表单数据创建并持久保存JSON对象。使用实体和FormTypes?

如何在Azure持久函数中模拟对持久实体的调用?

在symfony中将数据持久保存到OneToMany实体中的问题

Symfony 3-形式-持久实体-选择为NULL

如何在Symfony / Doctrine中持久保存克隆的实体对象

Symfony使用表单验证实体

Symfony从表单类型的实体中创建选择

从实体选择Symfony 2表单属性

Symfony 3:基于特征构建实体的表单

Symfony 表单验证实体类型

从Symfony中的表单类型访问用户实体

Symfony 2.3:验证不带表单的实体

Symfony - 具有多个实体对象的表单

使用自引用实体的Symfony表单呈现

使用AJAX从Symfony 4表单持久保存数据

Symfony - 通过调用方法更改实体字段

从持久性层检索实体之后,Symfony Api Platform过滤实体

Symfony-避免在预冲洗学说中存储相关实体

如何在保存前避免包含元素的实体中的列表但在持久时失败?

symfony-在form-> handleRequest中注销

Symfony:保留嵌入式表单并避免重复输入

如何加载持久化的Hibernate实体进行绑定,以使非表单属性不会丢失?

symfony实体表单类型以及相关数据

Symfony2表单可快速添加新实体

Symfony2,YML文件,实体和表单中的验证

Symfony-在表单的EventSubscriber中注入实体管理器

从存在实体Symfony4生成表单

具有Symfony的可空自定义表单实体

来自实体的Symfony表单以及其他字段