在Symfony中自动获取查询而不是结果集

时间:2010-02-03 16:36:01

标签: symfony1 doctrine symfony-1.4

在我的架构中,用户与他们的问题相关。

我想显示用户提出的所有问题。

我还希望使用sfDoctrinePager对此页面进行分页,这需要Doctrine_Query作为参数。

我知道我可以致电$my_user->getQuestions()来获取my_user的所有问题,但是有没有办法让查询获得所有这些问题呢?例如$my_user->getQuestionsQuery()之类的东西。

或者我必须自己实施吗?

2 个答案:

答案 0 :(得分:4)

您似乎必须手动创建Doctrine_Query对象:

$query = new Doctrine::getTable('Question')->createQuery('q')
     ->where('q.uid = ?', $my_user->getId());

然后将其传递给寻呼机:

$this->pager = new sfDoctrinePager('Question', $max_per_page);
$this->pager->setQuery($query);
$this->pager->setPage($cur_page);
$this->pager->init();

答案 1 :(得分:0)

恭喜!您已准备好使用专业查询。这些只是Doctrine_Query的后代,但有自己的快捷方法。 Nicolas Perriault撰写了一篇名为"Optimize your Doctrine Workflow with Specialized Queries"的文章,其中更详细地描述了这种技术。