有时我的查找程序很复杂,而且在控制器中重复这段代码我感觉很脏。
现在我在想,有可能做到这样的事情:
class User extends BaseUser
{
private static function getTable()
{
return Doctrine_Core::getTable('User');
}
public static function findAll()
{
return getTable()->findAll();
}
public function currentEnrolments() {
$query = Doctrine_Query::create()
->from('Enrolment e')
->where('e.user_id = ?', $this->id)
->addWhere('e.finish_date IS NULL');
return $query->execute();
}
}
这是一个好习惯吗?或者我应该只将非静态成员放在我所显示的查询中?
答案 0 :(得分:2)
一般来说,如果它能节省你的时间,那么就没有什么可以失去的,每一分钟你都可以节省下来。
像getTable
和findAll
这样的功能可能不会为您节省很多,但是查找更适合您应用的内容的自定义查询肯定是值得的。
答案 1 :(得分:1)
我的方法几乎相同。
getTable()
和findAll()
的静态代理。
findAll()
currentEnrolments()
函数,这是值得的,因为你对->addWhere('e.finish_date IS NULL')
有一些逻辑,因此解释你不能使用“神奇的”教义关系->Enrolment
。也许这是Doctrine 2正在解决的问题,需要检查一下...... 此致