Intereting Posts

Как заставить запросы PagerDefault корректно работать с Drupal 7?

Я запускаю следующий код:

$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);