我正在运行以下代码:
$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'),这不是问题。
这不是我失败的唯一例子,在其他几个项目中,类似的查询每次都会带回全部结果。
我已经阅读了所有文档,它似乎有时工作,而不是其他时间。有人有任何想法吗?
干杯
答案 0 :(得分:18)
当您致电extend()
时,与无关。
唯一重要的是你使用extend()
返回的新对象。原因是extend()
创建了一个新对象,它覆盖了当前对象(装饰器模式)。
因此,您需要使用$query = $query->extend('PagerDefault')
,就像您在答案中所做的那样(与其他来电相结合)。
答案 1 :(得分:7)
它不起作用,因为你必须这样做
$query = $query->extend('PagerDefault')->limit(2);