持久化实体的目的是什么?

时间:2016-03-13 10:40:45

标签: symfony doctrine-orm

我已经在http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html多次阅读了文档,但我仍然没有得到它。

持久化实体的目的是什么?

我有以下代码

$em = $this->getDoctrine()->getManager();
$user = $this->container->get('security.context')->getToken()->getUser();
if ($user) {
    $user->enabled(1);
    $em->flush();
}

效果很好。

我为什么要添加

$em->persist($user);
在冲洗之前

1 个答案:

答案 0 :(得分:3)

persisting实体只是意味着实体经理可以管理实体。否则它不知道它。

编辑:如果您正在使用已从实体经理开始的实体(在您的情况下为$user),则不需要持久化,因为实体经理已经知道" #34;关于它。因此,只有在创建新实例时才需要持久化。

  

通过将实体传递给EntityManager#persist($ entity)方法,可以使实体具有持久性。通过在某个实体上应用持久化操作,该实体变为MANAGED,这意味着它的持久性从现在开始由EntityManager管理。因此,当调用EntityManager#flush()时,此类实体的持久状态将随后与数据库正确同步。

http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html#persisting-entities