我已经和Doctrine合作了一段时间,但我对此并不满意。
我尝试做以下事情: (用户表的主键是名为userID的自动引用)
$user = new Mode_User();
$user->set('username', 'BenKenobi');
$user->save();
它工作正常,Doctrine将其保存到数据库中。现在我希望它通过执行以下操作来更新此对象:
$user->set('email', 'BenKenobi@etc.de');
$user->save();
这不会引发任何错误,但没有任何反应。有人因为ORM的工作方式而对我有所了解。
答案 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() - 方法。当我评论该方法时,一切都起作用,但不是这种方法。我决定让查询执行它。