我正在使用Views 7.x-3.6,并尝试通过以下方式更改GROUP BY
子句hook_views_query_alter()
:
function mymodule_views_query_alter(&$view, &$query) {
if ($view->name == "view_name"){
$query->add_groupby('field_name');
dpm($query);
}
}
当我查看时$query
,该groupby
子句已正确启用,但SQL查询不受影响:该GROUP BY
子句未出现:
我最终做的是使用Drupal核心钩子(hook_query_alter()
),它运行良好:SQL现在受到影响。
function mymodule_query_alter(QueryAlterableInterface $query) {
$view_name = 'view_name';
if ($query->hasTag('views_' . $view_name)) {
$query->groupBy('field_name');
}
}
有什么原因导致我hook_views_query_alter()
无法正常工作?我想知道是否有更清洁的方法来做到这一点。