Model 何时使用Doctrine_表与常规模型类?

Model 何时使用Doctrine_表与常规模型类?,model,doctrine,Model,Doctrine,我试图了解何时是使用Doctine_表类的适当时机,以及在那里存储哪些方法,而不是在常规模型类文件中存储哪些方法 另外,使用findBy*方法是否是一种良好的做法?在模型类中使用对该模型的实例(检索到的用户记录、博客文章等)进行操作的方法。例如,在用户记录上可能有一个setPassword()方法,该方法使用您自己的算法为该用户设置密码,或博客文章上的getTitleUppercased()方法,该方法返回博客标题,但大写 table类上的方法用于对整个表进行操作-通常,您会在这里找到Doctr

我试图了解何时是使用Doctine_表类的适当时机,以及在那里存储哪些方法,而不是在常规模型类文件中存储哪些方法


另外,使用findBy*方法是否是一种良好的做法?

在模型类中使用对该模型的实例(检索到的用户记录、博客文章等)进行操作的方法。例如,在用户记录上可能有一个
setPassword()
方法,该方法使用您自己的算法为该用户设置密码,或博客文章上的
getTitleUppercased()
方法,该方法返回博客标题,但大写

table类上的方法用于对整个表进行操作-通常,您会在这里找到Doctrine magic方法无法使用的查询方法。涉及特定联接、特定参数(例如
WHERE date>NOW()和foo.bar<5
)的查询应该放在这里


如果您的查询很简单,最好使用
findBy*
方法-不要重新发明轮子。请注意,这些都是非常具体的,因此对于
findOneByEmail('test@example.com“)
,但如果需要更具体一些,请将查询移动到table类中,使其成为自己的方法。

使用模型类中的方法对该模型的实例(您检索到的用户记录)进行操作,博客帖子等。例如,您可能在用户记录上有一个
setPassword()
方法,该方法使用您自己的算法为该用户设置密码,或者在博客帖子上有一个
getTitleUppercased()
方法,该方法返回博客标题但大写

table类上的方法用于对整个表进行操作-通常,您会在这里找到Doctrine magic方法无法使用的查询方法。涉及特定联接、特定参数(例如
WHERE date>NOW()和foo.bar<5
)的查询应该放在这里


如果您的查询很简单,最好使用
findBy*
方法-不要重新发明轮子。请注意,这些都是非常具体的,因此对于
findOneByEmail('test@example.com“)
,但如果需要更具体一些,请将查询移动到table类中,使用它自己的方法。

谢谢您的回答!这对我来说真的很清楚。你的例子很有帮助。谢谢你的回答!这对我来说真的很清楚。你的例子很有帮助。