Model 获取数据后怎么不改变排序的同时修改数据格式啊
// CardModel 结构
{
"id": 1,
"banlance": 307825005,
"company": {
"id": 1,
"name": "公司名称",
"telephone": 18512341234,
}
}
// 获取数据
$cards = Card::isActive()
->without(['price'])
->orderBy('banlance', 'desc')
->limit(20)
->get()
->mapWithKeys(function ($item) {
return [$item['id'] => $item['company']['telephone'].' - '.$item['company']['name']];
});
但是需要的数据是要经过 banlance 排序后的,经过 mapWithKeys 或者map 后 打印出来的数据顺序重置了,怎么杨保持banlance排序的同时修改数据格式啊
{
// "card_id" : "company_telephone - company_name",
"1": "18512341234 - 公司名称1",
"2": "185123412341 - 公司名称2",
"3": "185123412342 - 公司名称3",
"9": "185123412343 - 公司名称9",
}
直接按排序得到数组,然后用 array_map 自己搞
我想到一个追加模型属性的办法,只是多提供一种思路,不谈优劣:
定义一个属性访问器:
然后使用的时候: