web-dev-qa-db-ja.com

エンティティフィールドクエリの改ページを印刷する方法

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 ?> 
_

それは明らかに機能します。 URLに_?page=2,5_を追加すると、異なる結果が得られます。
次に、ページャーをレンダリングする必要があります。単にtheme_pager()を呼び出すだけでは機能しません。 theme('pager', array("element" => 1))を呼び出すと、常にNULLが返されます。

何が悪いのですか?

更新:コードを現在の状態に更新しました

4
Nils Riedemann

->initializePager()の部分が間違っています。どうしてそうするか?その行を強制終了し、通常どおりexecute()を呼び出します。 theme('pager')を呼び出すだけで十分です。なぜ失敗するのかわかりません。 (initializePager()の呼び出しが原因である可能性があります。)

5
Bojan Zivanovic

ここを変更:-> pager(3、1)を-> pager(3)に変更します。それが動作します。

0
user303605