我需要修改 Views 生成的查询,以便我可以使用高度自定义的过滤器。由于这个问题,我已经用一些 OR 实现了 add_where() 函数:OR operator in Drupal View Filters
然而,这只解决了我的部分问题。有些字段我无法过滤,因为我需要在查询中加入额外的 JOIN。
是否有类似的东西
$view->query->add_where()
可以插入JOIN语句吗?
最佳答案
我找到了答案 here .无耻复制:
function hook_views_query_alter(&$view, &$query) {
$join = new views_join();
$join->table = 'my_table';
$join->field = 'my_field';
$join->left_table = 'left_table';
$join->left_field = 'left_field';
$join->type = 'left';
$join->extra = array(
array(
'field' => 'bundle',
'value' => 'user',
)
);
$query->add_relationship('relationship_name', $join, 'node');
}
关于php - 在 hook_views_query_alter() 中添加 JOIN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134941/