You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Drupal Views中以百万/十亿为单位显示数值

Drupal Views 合约值转百万单位显示解决方案

方法1:Views内置字段格式化(零代码最简方案)

  • 打开目标视图,找到「Contract Value」字段进入字段设置
  • 在「格式化器」选项中选择「数字(Number)」,展开高级设置:
    • 勾选「缩放数值」,设置缩放比例为0.000001(等价于除以100万)
    • 设置小数保留位数(建议2位),添加后缀「M」(代表百万)
    • 保存后,9位数字(如999000000)会自动显示为999.00 M

方法2:自定义文本字段(灵活定制场景)

如果需要更个性化的显示逻辑(比如数值小于100万时保留原单位),可以添加自定义字段:

  1. 在视图中添加「全局: 自定义文本」字段
  2. 在文本编辑框中插入PHP代码(需开启PHP筛选器,注意权限控制):
// 替换field_contract_value为你的字段机器名
$raw_value = $row->field_contract_value[0]['raw']['value'];
$converted = $raw_value / 1000000;
// 可根据需求调整格式,比如小于1的数值显示小数,大于等于1的显示整数
echo $converted >= 1 ? number_format($converted, 0) . ' M' : number_format($converted, 2) . ' M';
  1. 隐藏原「Contract Value」字段,调整自定义字段的显示顺序即可

方法3:自定义模块钩子(全站统一处理)

如果需要全站所有视图的该字段都统一转换逻辑,可编写自定义模块:

/**
 * Implements hook_views_pre_render().
 */
function my_custom_module_views_pre_render(&$view) {
  // 替换为目标视图ID和显示ID
  if ($view->id() == 'financial_contracts' && $view->current_display == 'page_1') {
    foreach ($view->result as &$row) {
      if (!empty($row->field_contract_value)) {
        $raw_value = $row->field_contract_value[0]['raw']['value'];
        $formatted = number_format($raw_value / 1000000, 2) . ' M';
        $row->field_contract_value[0]['rendered']['#markup'] = $formatted;
      }
    }
  }
}

替换my_custom_module、financial_contracts、page_1和field_contract_value为实际项目值

内容的提问来源于stack exchange,提问作者Yashal Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:25:14