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

Yii2 GridView合并多列时如何跳过空列?

解决方案

你只需要把原来直接拼接的逻辑改成先收集所有字段、过滤空值、再拼接的方式,就能自动跳过空列,避免出现连续的点。修改后的代码如下:

'value' => function($q) use ($aaa, $bbb){ 
    $c = isset($bbb[$q->something->classId]) ? $bbb[$q->something->classId] : ""; 
    $d = isset($aaa[$q->something->familyId]) ? $aaa[$q->something->familyId] : ""; 
    // 1. 把所有要合并的字段放进数组
    $parts = [
        $c,
        $d,
        $q->something->someName,
        $q->something->someName // 这里你重复写了两次someName,确认下是不是笔误哦
    ];
    // 2. 过滤掉空值(默认会排除空字符串、null、false等)
    $nonEmptyParts = array_filter($parts);
    // 3. 用点连接非空字段
    return implode('.', $nonEmptyParts);
},

补充说明:

  • array_filter() 默认会过滤掉所有PHP里被判定为"空"的值(比如""、null、false、0等),刚好符合你跳过空列的需求。
  • 如果你需要更精准的过滤(比如只排除空字符串,保留0或者"0"这类值),可以给array_filter()加个自定义回调:
    $nonEmptyParts = array_filter($parts, function($part) {
        return $part !== ""; // 仅排除严格等于空字符串的元素
    });
    

内容的提问来源于stack exchange,提问作者5.1tat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:42:44