Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2 EntityManager更新而不保留_Symfony_Doctrine_Entitymanager - Fatal编程技术网

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所做的任何更改。