【发布时间】:2013-05-18 00:15:32
【问题描述】:
谁能给我解释一下:
$user = new User();
/* why do I have to call Entity Comment while trying to insert into db? */
$myFirstComment = new Comment();
$user->addComment($myFirstComment);
$em->persist($user);
$em->persist($myFirstComment);
$em->flush();
为什么我在尝试插入数据库时必须调用实体注释?
我有级联。
- 这是否意味着如果我在用户实体中有 50 个关系与其他 实体我在尝试时必须手动调用每个关系 更新/插入/删除?
- 如果我必须手动执行所有操作,为什么还要存在级联?
如果我必须手动调用所有这些关系,那么使用 Doctrine 有点愚蠢。
我不明白。任何帮助表示赞赏。
这与此相关:doctrine 2, unable to insert to database when relation is present
【问题讨论】:
-
换句话说,如果我有级联,为什么我必须调用其他实体的引用?
-
长话短说:如果我有从一个实体到另一个实体的关联,我必须在插入/更新时始终调用另一个实体。我不能说$user->addComment("some comment"),我必须先调用relation,然后再调用$user->addComment("some comment")。这是有道理的,但它有点愚蠢。如果我有 50 个关系怎么办?在插入/更新时调用每个关系?教义非常适合选择,但如果你有关系,它对其他一切都很糟糕。我必须做 50 次 $this->em->getReference('entity name') .....
-
我已经通过大量解释和文档提示回答了您的问题 + 附加了代码示例。如果对您有帮助,请接受答案:)
标签: php symfony zend-framework orm doctrine-orm