Где условие в доктрине и Zend Framework 2, нумерация страниц

Я не могу создать условия для работы с нумерацией страниц Doctrine и Zend Framework 2.
Мой код приведен ниже.

public function indexAction(){
$em = $this->getEntityManager();
$repository = $em->getRepository('Catalog\Entity\Category');
$queryBuilder = $repository->createQueryBuilder('Category');
$adapter = new DoctrinePaginator(new ORMPaginator($queryBuilder));

$paginator = new Paginator($adapter);
$paginator->setDefaultItemCountPerPage(9);

$page = (int)$this->params()->fromQuery('page');
if($page) $paginator->setCurrentPageNumber($page);
$view = new ViewModel(
array('paginator' => $paginator)
);
return $view;
}

Я хочу получить Категории, для которых значение столбца «включено» равно 1.

Альтернативный способ, который я получил, — это создание DQL-запроса, но я не получаю выгоды от нумерации страниц Zend Framework 2.

$repository->createQueryBuilder('Category')->where(array('enabled' => 1));

Я хочу использовать мой верхний код, потому что он помогает мне в полной мере использовать нумерацию страниц Zend Framework 2, но как мне указать в ней условие где?

1

Решение

Я решил это с помощью QueryBuilder of Doctrine. Найдите код ниже, чтобы добавить условие вместе с нумерацией страниц Zend Framework 2.

public function indexAction(){
$em = $this->getEntityManager();
$repository = $em->getRepository('Catalog\Entity\Category');
$queryBuilder = $repository->createQueryBuilder('category')
->where('category.enabled = 1')
->orderBy('category.sortOrder', 'ASC');
$adapter = new DoctrinePaginator(new ORMPaginator($queryBuilder));

$paginator = new Paginator($adapter);
$paginator->setDefaultItemCountPerPage(9);

$page = (int)$this->params()->fromQuery('page');
if($page) $paginator->setCurrentPageNumber($page);
$view = new ViewModel(
array('paginator' => $paginator)
);
return $view;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]