D7寻呼机查询 - 寻呼机中的页面太多

时间:2011-04-22 04:40:03

标签: drupal drupal-7

我有3个节点内容类型'mycontenttype'。我正在尝试设置一个可排序/可分页的表,每页限制为10个项目。

在此代码中,$ nids仅返回3个节点。我实际上运行node_load_multiple($ nids)然后循环遍历这些节点以构建$ rows变量。只有3个出现。

问题:寻呼机正在渲染4页。

期望:应该没有寻呼机渲染,因为我在查询或计数查询中没有10个节点。

非常感谢任何见解。

<?php
function mymodule_create_a_pager_table() {

  $query = db_select('node', 'n')->extend('PagerDefault')->extend('TableSort')->element('my_custom_id');
  $query->fields('n', array('nid'));

  $query->condition('n.type', 'mycontenttype');
  $query->condition('n.status', 1);

  $count_query = clone $query;
  $query->setCountQuery($count_query);

  $query->limit(10);

  $header = array(array('data' => 'Title', 'sort' => 'asc', 'field' => 'n.title'), 'column 2', 'column 3');
  $query->orderByHeader($header);

  $nids = $query->execute()->fetchCol();

  // ... building $rows array for display only here

  $output = theme('table', array('header'=> $header, 'rows' => $rows));
  $output .= theme('pager', array('element' => 'my_custom_id', 'quantity' => 10));

  return $output;
}
?>

输出

节点1标题| col2 val | col3 val

节点2标题| col2 val | col3 val

节点3标题| col2 val | col3 val

1 2 3 4 next> last»

1 个答案:

答案 0 :(得分:2)

我认为元素应该是一个整数。

尝试将 - &gt; element()调用和主题('pager')的任何参数都留下。

此外,您的计数查询错误。只是不要定义它,这将自动为您完成。这可能是你问题的真正原因,而不是元素。

计数查询得到执行,第一个返回值(fetchField())被假定为元素数。您的查询可能返回一个nid,这被误认为是数字。所以请将其留下,Drupal将自动为您构建正确的计数查询。