Я использую PHP
с Zend Framework 2.3.3
. Я использовал Paginator
для a Выберите с Union
. код выглядит так:ZF2 Pagination не работает с Union
$where = new Where();
$where->like('value', "%$infoToSearch%");
$select = new Select();
$select->columns(array(new Expression('DISTINCT(id)')));
$select->from('products');
$select->where($where);
$select2 = new Select();
$select2->columns(array(new Expression('DISTINCT(id)')));
$select2->from('products_archive');
$select2->where($where);
$select->combine($select2);
$paginatorAdapter = new DbSelect($select, $this->getAdapter());
$paginator = new Paginator($paginatorAdapter);
$paginator->setCurrentPageNumber(1);
$paginator->setItemCountPerPage(10);
foreach($paginator as $product){
var_dump($product);
}
тогда я получаю неправильный номер продукции. Я проверил журнал запросов MySQL и увидел этот запрос:
(SELECT DISTINCT(id) AS Expression1 FROM `products` WHERE `value` LIKE '%3%' LIMIT 10 OFFSET 0) UNION (SELECT DISTINCT(id) AS Expression1 FROM `products_archive` WHERE `value` LIKE '%3%')
, как вы можете видеть LIMIT 10 OFFSET 0
в неправильном месте. Он должен быть в конце запроса. Это ошибка или есть ли способ решить эту проблему?
спасибо большое – Abadis