Doctrine2(实体与存储库)

时间:2012-07-08 05:42:31

标签: model-view-controller model doctrine doctrine-orm

我是新用的Doctrine2,哪里是在实体或存储库中编写自定义函数的最佳位置?假设我有一个用户实体,我想要达到他的年龄。

如果我把函数getAge放在我的实体中非常简单。但是如果我将函数getAge放在我的存储库中,我必须通过userId来获取该用户的年龄。我错了吗?实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

通常在使用实体时,您需要将所有数据和操作保留在实体本身的实体上,而存储库仅用于获取正确的实体以开头。

例如,getAge()setAge()返回/操作单个实体中的数据,因此它们应该进入实体本身,而理论getUsersByAge()则定位所有用户特定年龄将进入存储库。

答案 1 :(得分:0)

希望它会有所帮助

$em = Zend_Registry::getInstance ()->entitymanager;
$user = $em->getRepository('Model_User')->findOneBy(array( 'user_id' => $userID,
        ));
$user->getAge();