视图 3 输出的自定义顺序

Posted

技术标签:

【中文标题】视图 3 输出的自定义顺序【英文标题】:Custom order for Views 3 output 【发布时间】:2012-09-22 17:12:29 【问题描述】:

我在视图中有一个相关字段,其中包含排名 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 的综合指南?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于视图 3 输出的自定义顺序的主要内容,如果未能解决你的问题,请参考以下文章

UIToolbar 上可更新的自定义视图

使用自定义适配器的自定义对象

在 ASP.NET MVC 3 中创建基于平台显示不同视图的自定义 ViewResult

Drupal 视图中的自定义排序

如何为 MkAnnotation View 自定义视图,就像表格视图的自定义单元格一样?

为啥堆栈视图中的自定义视图重叠?