Я запускаю следующий код:
$query = db_select('taxonomy_index', 'ti') ->fields('ti', array('nid')) ->condition('ti.tid', $term->tid) ->condition('n.status', 1); $query->join('node', 'n', 'n.nid = ti.nid'); $query->extend('PagerDefault')->limit(2); $nids = $query->execute()->fetchCol();
но пейджер не работает: каждый элемент из запроса возвращается, как если бы вызов PagerDefault полностью игнорировался. Я выводя тему («пейджер») дальше на выходе, так что это не проблема.
Это не единственный пример этого сбоя, который у меня есть, в нескольких других проектах похожие запросы также возвращают все количество результатов каждый раз.
Я прочитал всю документацию, она работает иногда, а не в другое время. У кого-нибудь есть идеи?
ура
Это не имеет значения, когда вы вызываете extend()
.
Единственное, что важно, это то, что вы используете новый объект, возвращенный функцией extend()
. Причиной этого является то, что функция extend()
создает новый объект, который обертывает текущий объект (узор Decorator).
Таким образом, вам нужно использовать $query = $query->extend('PagerDefault')
, как и в вашем ответе (в сочетании с другими вызовами).
Он не работает, потому что вам нужно сделать
$query = $query->extend('PagerDefault')->limit(2);