我是新用的Doctrine2,哪里是在实体或存储库中编写自定义函数的最佳位置?假设我有一个用户实体,我想要达到他的年龄。
如果我把函数getAge放在我的实体中非常简单。但是如果我将函数getAge放在我的存储库中,我必须通过userId来获取该用户的年龄。我错了吗?实现这一目标的最佳方法是什么?
答案 0 :(得分:6)
通常在使用实体时,您需要将所有数据和操作保留在实体本身的实体上,而存储库仅用于获取正确的实体以开头。
例如,getAge()
和setAge()
返回/操作单个实体中的数据,因此它们应该进入实体本身,而理论getUsersByAge()
则定位所有用户特定年龄将进入存储库。
答案 1 :(得分:0)
希望它会有所帮助
$em = Zend_Registry::getInstance ()->entitymanager;
$user = $em->getRepository('Model_User')->findOneBy(array( 'user_id' => $userID,
));
$user->getAge();