我正在学习doctrine2,并且遇到了如何自动调用构造函数的问题.例如,在我的实体中,我有
/**
* @Entity
*/
class User{
....
public function __construct() {
exit('in');
}
}
Run Code Online (Sandbox Code Playgroud)
当我以这种方式获得对象时:
$userObj = $em->find('User', 1);
Run Code Online (Sandbox Code Playgroud)
我从数据库中获取该对象,但从不调用构造函数.我想在构造函数中放置一些常见的东西,比如验证规则,甚至可以从教条文档中放入示例代码
$this->comments = new ArrayCollection();
Run Code Online (Sandbox Code Playgroud)
当我在代码中创建用于创建用户的新对象时,这个过程就有效
$user = new User(); //now constructor works just fine
Run Code Online (Sandbox Code Playgroud)
现在,获得实体的"正确"方式是什么?我怀疑每次使用$ user-bj - > __ construct()用户$ em-> find()时我都必须手动调用构造函数; ?这有点糟糕...或者我应该使用其他东西 - > find()来正确获得单个实体?我知道我可以使用@PrePersist,我正在使用它来实际进行验证检查等.我想我可能在这里遗漏了一些东西,或者我试图以糟糕的方式使用构造函数.感谢您的任何解释和指导!
| 归档时间: |
|
| 查看次数: |
5764 次 |
| 最近记录: |