TP5模型Model的获取器原始数据和自定义字段同时显示的办法。
根据官方文档:
获取器的作用是在获取数据的字段值后自动进行处理,例如,我们需要对状态值进行转换,可以使用:
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
return $status[$value];
}
}
数据表的字段会自动转换为驼峰法,一般 status 字段的值采用数值类型,我们可以通过获取器定义,自动转换为字符串描述。
这个时候通过 model 查询出来的数据就变成了转换后的字段,但是原始数据就不显示了,那么需要原始数据该怎么办呢?
同时显示原始数据和自定义字段
在 model 中加入获取方法
//0未确认,1已取消,2已关闭,3确认收货,4部分分单,5已分单,6交易完成
public function getOrderStatusTextAttr($value){
$status = [0=>'未确认',1=>'已取消',2=>'已关闭',3=>'确认收货',4=>'部分分单',5=>'已分单'];
return $status[$value];
}
然后在查询语句的时候:
$model = new Order;
$model->Field('order_id,order_status,order_status as order_status_text');
查询结果 json 格式
{
"code": 0,
"data": [
{
"order_status": "5",
"order_status_text": "确认收货",
}
]
}
OK。
要注意的是:
如果你的 key 不存在,可能会报 未定义数组下标: 5 的错误哦!