Автоматически получать запрос вместо набора результатов в Symfony - PullRequest
2 голосов
/ 03 февраля 2010

В моей схеме пользователь связан со своими вопросами.

Я хочу отобразить все вопросы, заданные пользователем.

Я также хочу, чтобы эта страница была разбита на страницы с помощью sfDoctrinePagerдля которого требуется Doctrine_Query в качестве параметра.

Я знаю, что могу позвонить $my_user->getQuestions(), чтобы получить все вопросы от my_user, но есть ли способ получить запрос, чтобы получить все эти вопросы вместо этого?Что-то вроде $my_user->getQuestionsQuery() например.

Или я должен сам это реализовать?

Ответы [ 2 ]

4 голосов
/ 03 февраля 2010

Кажется, вам нужно создать объект 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();
0 голосов
/ 04 февраля 2010

Поздравляем!Вы готовы использовать специализированных запросов .Это просто потомки Doctrine_Query, но с вашими собственными ярлыками.Есть статья, написанная Николя Перрио, под названием «Оптимизация вашего рабочего процесса доктрины с помощью специализированных запросов» , в которой этот метод описан более подробно.

...