Symfony2 EntityManager更新而不保留
正如你在下面看到的,我根本不“坚持”。但我所做的改变正在发生。谢谢你的帮助Symfony2 EntityManager更新而不保留,symfony,doctrine,entitymanager,Symfony,Doctrine,Entitymanager,正如你在下面看到的,我根本不“坚持”。但我所做的改变正在发生。谢谢你的帮助 $entityManager=$this->getDoctrine()->getManager(); $entity=$entityManager->getRepository(City::class)->查找(1); $entity->setName(“调试名称”); $entityManager->flush()初始化新对象时,必须调用方法persist(),如new City()。当您使用find()从数据库中获取
$entityManager=$this->getDoctrine()->getManager();
$entity=$entityManager->getRepository(City::class)->查找(1);
$entity->setName(“调试名称”);
$entityManager->flush()代码>初始化新对象时,必须调用方法persist()
,如new City()
。当您使用find()
从数据库中获取对象时,它已经有一些元数据。
从学说网站
条令使用身份映射模式来跟踪对象。每当你
从数据库中获取对象时,条令将保留对
此对象位于其工作单元内。包含所有实体的数组
引用深度为两级,键为“根实体名称”和
“身份证”
以下是信条中的示例:
当你打电话给EntityManager时,flush Doctrine会询问身份图
对于当前管理的所有对象。这意味着你没有
要调用EntityManager,请反复坚持以通过已知
对象到EntityManager。这是已知实体的禁止操作,但是
导致编写的代码太多,使其他开发人员感到困惑
以下代码将使用对所做的更改更新数据库
Person对象,即使未调用EntityManager#persist:
初始化新对象时,必须调用方法persist()
,如new City()
。当您使用find()
从数据库中获取对象时,它已经有一些元数据。
从学说网站
条令使用身份映射模式来跟踪对象。每当你
从数据库中获取对象时,条令将保留对
此对象位于其工作单元内。包含所有实体的数组
引用深度为两级,键为“根实体名称”和
“身份证”
以下是信条中的示例:
当你打电话给EntityManager时,flush Doctrine会询问身份图
对于当前管理的所有对象。这意味着你没有
要调用EntityManager,请反复坚持以通过已知
对象到EntityManager。这是已知实体的禁止操作,但是
导致编写的代码太多,使其他开发人员感到困惑
以下代码将使用对所做的更改更新数据库
Person对象,即使未调用EntityManager#persist:
从存储库加载找到的实体后,只需将其拆离即可
$entity = $entityManager->getRepository(City::class)->find(1);
$entityManager->detach($entity);
从存储库加载找到的实体后,只需将其拆离即可
$entity = $entityManager->getRepository(City::class)->find(1);
$entityManager->detach($entity);
我看不出有任何问题,因为你正在做的是一个更新过程。您不必调用persist
来触发更新,因为您已经在调用flush
$em->refresh($entity)将基本上撤消自上次检索以来对$entity所做的任何更改。我看不出有任何问题,因为您所做的是一个更新过程。您不必调用persist
来触发更新,因为您已经在调用flush
$em->refresh($entity)将基本上撤消自上次检索以来对$entity所做的任何更改。