PHP开发技巧--状态数组转换为文字

问题:开发中常常遇到将状态、性别等数字转换为文字,以便前台更好的展示。如性别(gender)通常用1代表男性2代表女性,但是前端输出往往不是1或者2,而是男或者女。可以前端解决,也可以后端解决这个问题,主要是讲解后端解决的问题。

  1. 将字段直接转换为文字,如1直接转换为男,2直接转换为女。大部分PHP框架都有各自修改字段属性的方法,以常用的Tp为例:
    public function getStatusAttr($value,$data)
        {
            switch ($value) {
                case -1:
                    $status = '删除';
                    break;
                case 0:
                    $status = '禁用';
                    break;
                case 1:
                    $status = '正常';
                    break;
                case 2:
                    $status = '待审核';
                    break;
                default:
                    $status = '未定义状态';
            }
            return $status;
        }

    通常这种做法是最普遍也是最常用的,但是弊端也很多:屏蔽了原先的值,无法根据原来数据进行判断(status==1等等),必须重新获取初始值。

  2. 第二种方法是增加一个新的字段,如status可以新增一个新的字段status_text文本字段,Tp5可以便捷的实现相关功能

     public function getStatusTextAttr($value,$data)
        {
    
            switch ($data['status']) {
                case -1:
                    $status_text = '删除';
                    break;
                case 0:
                    $status_text = '禁用';
                    break;
                case 1:
                    $status_text = '正常';
                    break;
                case 2:
                    $status_text = '待审核';
                    break;
                default:
                    $status_text = '未定义状态';
            }
            return $status_text;
        }

    该status_text和status共同存在,并不会存入数据库,只是有需要时才将该字段添加进进去,作为status字段的说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值