我可以在这里添加一个where条件加入$ x-> getTable1() - > getTable2()吗?

时间:2013-01-14 19:43:09

标签: php doctrine symfony-1.4

我可以在此联接$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();

1 个答案:

答案 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();