如何在find()函数中添加条件?

时间:2013-05-29 15:54:44

标签: sql doctrine symfony-1.4

这是我的疑问:

Doctrine::getTable('Registar')->find('1');

'1'是ID

我想添加其他几个带有IN条件的ID,以获得这样的请求:

SELECT c.id AS c__id, c.created_at AS c__created_at, c.updated_at AS c__updated_at FROM registar c WHERE c.id IN ('1','2','3')

可以使用find函数添加此条件吗?

1 个答案:

答案 0 :(得分:5)

find只是使用主键检索一行的简短方法(在您的情况下为id)。

如果您想更复杂的查询,则必须使用where方法,如下所示:

Doctrine::getTable('Registar')
  ->whereIn('id', array('1','2','3'))
  ->execute();

最好在RegistarTable.class.php中定义此方法,如下所示:

public function findByIds($ids)
{
  return $this->createQuery()
    ->whereIn('id', $ids)
    ->execute();
}

然后使用:

调用它
Doctrine::getTable('Registar')->findByIds(array('1','2','3'));