我正在使用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()无法正常工作?我想知道是否有更清洁的方法来做到这一点。