【问题标题】:How do I get PagerDefault queries to work correctly with Drupal 7?如何让 PagerDefault 查询与 Drupal 7 一起正常工作?
【发布时间】:2011-10-03 15:42:16
【问题描述】:

我正在运行以下代码:

$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 的调用被完全忽略了一样。我在输出中进一步输出主题('pager'),所以这不是问题。

这不是我遇到的唯一失败示例,在其他几个项目中类似的查询也每次都带回全部结果。

我已阅读所有文档,它似乎有时有效,有时无效。有人有什么想法吗?

干杯

【问题讨论】:

    标签: php drupal drupal-7


    【解决方案1】:

    不相关什么时候你打电话给extend()

    唯一重要的是您使用extend() 返回的新对象。原因是extend() 创建了一个包装当前对象的新对象(装饰器模式)。

    因此,您需要使用$query = $query->extend('PagerDefault'),就像您在回答中所做的那样(与其他呼叫结合使用)。

    【讨论】:

      【解决方案2】:

      它不起作用,因为你必须这样做

      $query = $query->extend('PagerDefault')->limit(2);
      

      【讨论】:

      • 就是这样!谢谢!
      • 这对我很有帮助!! :D
      猜你喜欢
      • 2011-06-07
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 2017-02-27
      • 2021-12-27
      • 2012-07-02
      相关资源
      最近更新 更多