Doctrine如何保存新的相关对象

时间:2010-04-15 14:21:22

标签: php orm doctrine

如果我创建一个具有大量关系的新Doctrine对象,我应该在将它们分配给新创建的对象之前保存()这些关系吗? E.g。

$main = new Main();
$child = new Child();
$main->child_rel = $child; // do I need to save the child obj explicitly?
$main->save();

我假设父级会自动调用级联保存,但对于新实例化的父对象,情况似乎并非如此。

它是如何运作的?

1 个答案:

答案 0 :(得分:2)

如果需要,Doctrine会处理所有事情并保存相关记录。 顺便说一句,您不需要实例化相关对象。您可以使用以下语法:

$user->Email->address = 'me@server.com';
$user->save();

在一对多和多对多关系的情况下:

$user->Phonenumbers[]->phonenumber = '123 123';
$user->Phonenumbers[]->phonenumber = '456 123';
$user->Phonenumbers[]->phonenumber = '123 777';
$user->save();

doctrine documentation上的更多信息。