如何通过学说对象更新数据集?

时间:2010-12-30 15:26:02

标签: orm doctrine

我已经和Doctrine合作了一段时间,但我对此并不满意。

我尝试做以下事情: (用户表的主键是名为userID的自动引用)

$user = new Mode_User();
$user->set('username', 'BenKenobi');
$user->save();

它工作正常,Doctrine将其保存到数据库中。现在我希望它通过执行以下操作来更新此对象:

$user->set('email', 'BenKenobi@etc.de');
$user->save();

这不会引发任何错误,但没有任何反应。有人因为ORM的工作方式而对我有所了解。

2 个答案:

答案 0 :(得分:0)

(我假设你使用的是Doctrine 1.x)

我建议您read the fine docs申请Doctrine并通过examples工作。

你想要的是这样的:

$user = new Mode_User();
$user->username = 'BenKenobi;
$user->email = 'BenKenobi@etc.de';
$user->save();

您没有明确使用set,但您设置了模型属性的值。当然,所有这些功能都取决于数据库中的正确设置,并相应地设置所有模型属性。

答案 1 :(得分:0)

是的,我们正在使用Doctrine 1.2。 我发现了这个问题。 Ther是用户模型中的preUpdate() - 方法。当我评论该方法时,一切都起作用,但不是这种方法。我决定让查询执行它。