根据字段status的值判断status_name的值
作者:杨锦龙时间:2025-10-18点击量:0次
推荐方案:在查询中使用 CASE WHEN
$list = Db::name("piaochuang") ->field("*, CASE WHEN status = 1 THEN '显示' ELSE '不显示' END AS status_name") ->where($where) ->order("addtime desc") ->paginate(20, false, ['query' => request()->param()]);
备选方案:在获取后用 PHP 处理
如果你需要在 PHP 中处理(例如逻辑更复杂),可以这样:
$list = Db::name("piaochuang") ->where($where) ->order("addtime desc") ->paginate(20, false, ['query' => request()->param()]); // 遍历数据,添加 status_name $list->each(function($item) { $item['status_name'] = $item['status'] == 1 ? '显示' : '不显示'; }); return $list;
✅ 说明
第一种方式(
CASE WHEN)更高效,适合简单判断。第二种方式更灵活,适合需要调用函数或复杂逻辑的场景。
建议使用第一种。