我可以在此联接$x->getTable1()->getTable2()
中添加where条件,以获得与此查询相同的结果:
$y = Doctrine_Query::create()
->from('Table0 t0')
->innerJoin('t0.Table1 t1')
->innerJoin('t1.Table2 t2')
->where('t2.status = "active"')
->execute->getLast();
答案 0 :(得分:0)
您需要构建自定义方法。我通常会这样做。
在Table1.class.php中,创建一个自定义方法:
public function getTable2ByStatus($status = 'active')
{
return Doctrine_Core::getTable('Table2')->retrieveByStatus($status);
}
然后,在Table2Table.class.php中:
public function retrieveByStatus($status)
{
return $this->createQuery('t2')
->where('t2.status = ?', $status)
->execute()
->getLast();
}
现在你可以这样称呼它:
$x->getTable1()->getTable2ByStatus();