Php 如何让PagerDefault查询在Drupal 7中正常工作?
我正在运行以下代码:Php 如何让PagerDefault查询在Drupal 7中正常工作?,php,drupal,drupal-7,Php,Drupal,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')->
$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()
创建了一个新对象来包装当前对象(装饰器模式)
因此,您需要使用
$query=$query->extend('PagerDefault')
,就像您在回答中所做的那样(与其他调用结合使用)。它不起作用,因为您必须这样做
$query = $query->extend('PagerDefault')->limit(2);
就这样!谢谢这真的帮助了我!!:D