0

我可以在此联接中添加 where 条件以$x->getTable1()->getTable2()得到与此查询相同的结果:

$y = Doctrine_Query::create()  
      ->from('Table0 t0')
      ->innerJoin('t0.Table1 t1')
      ->innerJoin('t1.Table2 t2')
      ->where('t2.status = "active"')
      ->execute->getLast();
4

1 回答 1

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();
于 2013-01-15T09:37:54.387 回答