我有一个为搜索表单和表单类型建模的实体,我仅将该表单用于搜索目的,并且我不希望在数据库中修改该实体,因此,当我这样做时:
$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] 删除。
我来说两句