代码之家  ›  专栏  ›  技术社区  ›  Alana Storm

检索创建集合的查询

  •  0
  • Alana Storm  · 技术社区  · 14 年前

    我有一个 Doctrine_Collection 用类似的代码创建的对象。

    $collection = Doctrine_Query::create()
    ->from('FooBazBar')
    ->where('widget_id = ?',$some_var)
    ->execute();
    

    也就是说,我希望能够

    $collection->getWhereClauses(); //fake method
    

    2 回复  |  直到 14 年前
        1
  •  1
  •   DuoSRX    14 年前

    不,这不是通过API公开的。

    更严重的是,您无法检索生成集合的查询。最简单的方法是在表中创建一个方法,如:

    //FooTable.php
    public function findByWidgetQuery()
    {
    return $this->createQuery('foo')
      ->where('foo.baz = ?', 'bar');
    }
    

    $where = Doctrine_Core::getTable('Foo')
    ->findByWidgetQuery()
    ->getDqlPart('where');
    

    应该会得到这样一个数组:

    array(2) { [0] => string(8) 'widget = ?' [1] => string(10) 'widget = ?' }
    

    你可以在房间里找到一切 Doctrine API .