2

我在视图中有一个相关字段,其中包含排名 1-4,如果相关记录不存在,则为 NULL。我需要按以下顺序返回结果:1、2、3、NULL、4,而现在,它按以下顺序返回数据集:NULL、1、2、3、4。

看起来这将是一件简单的事情,使用

ORDER BY FIELD(field, 1,2,3,NULL,4) in hook_views_alter_query.

我查看了视图中的 SQL 输出并提取了:

ORDER BY 
 field_partner_name_users__field_data_field_partner_ranking.field_partner_ranking_value, 

然后把它放在钩子里:

$query->orderby[0]['field'] = 
 "field_partner_name_users__field_data_field_partner_ranking.field_partner_ranking_value"; 

但是当我尝试在 中使用此字段时ORDER BY,我收到此错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_partner_name_users__field_data_field_partner_ranking.field_partner_ranking_value' in 'order clause'

任何帮助将不胜感激。此外,是否有关于 Views 3 的综合指南?

4

1 回答 1

0

在您的自定义模块中尝试 hook_veiws_query_alter 以及 hook_views_api

于 2013-04-10T05:11:36.643 回答