Как распечатать разбивку на страницы для запросов EntityFieldQueries?


У меня есть этот код, который использует объект EntityFieldQuery:

$query = new EntityFieldQuery;
$query
  ->entityCondition('entity_type', 'node')
  ->entityCondition('bundle', 'yacht')
  ->propertyCondition("status", 1)
  ->pager(3, 1);

// […] switch case defaulting to:
$query->fieldOrderBy("field_bautyp", 'value', "asc");
// […]

$query->execute();
$nodes = node_load_multiple(array_keys($result['node']));
return theme('yacht_display', array('nodes' => $nodes));

И в yacht_display.tpl.php

<some HTML-Code and iteration over the $nodes>
<?php var_dump(theme_pager()); # => NULL ?> 

Это, по-видимому, работает; когда я добавляю ?page=2,5 к URL-адресу, я получаю разные результаты.
Теперь мне нужно отрисовать пейджер. Простой вызов theme_pager() не работает; вызов theme('pager', array("element" => 1)) всегда возвращает NULL.

Что я делаю не так?

ОБНОВЛЕНИЕ: обновил код до его текущего состояния

Author: Nils Riedemann, 2011-04-01

2 answers

Часть ->initializePager() неверна; зачем вам это делать? Отключите эту линию и позвоните execute(), как обычно. Простого вызова theme('pager') должно быть достаточно; Я не уверен, почему это не удается. (Возможно, из-за призыва к initializePager().)

 5
Author: Bojan Zivanovic, 2011-04-02 03:37:07

Измените здесь: ->пейджер(3, 1) на ->пейджер(3). Это сработает.

 0
Author: user303605, 2014-09-10 09:33:03