Я не могу создать условия для работы с нумерацией страниц 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, но как мне указать в ней условие где?
Я решил это с помощью 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;
}
Других решений пока нет …