将Laravel关系对象上的字符串转换为整数



我有一个数组的集合,由qty作为字符串,我想要的是删除一个$符号,使字符串为整数

"collection": [
{
"id": 983,
"controlNumber": "4498818",
"ItemNumber": "PS2W12077",
"shipment": {
"id": 27,
"Item": "PS2W12077",
"ColorCode": "GRPFR",
"qty": "$1,638"
}
},
{
"id": 982,
"controlNumber": "4498818",
"ItemNumber": "PS2W12077",
"shipment": {
"id": 27,
"Item": "PS2W12077",
"ColorCode": "GRPFR",
"qty": "$1,638"
}
},
{
"id": 981,
"controlNumber": "4498818",
"ItemNumber": "PS2W12077",
"shipment": {
"id": 27,
"Item": "PS2W12077",
"ColorCode": "GRPFR",
"qty": "$1,638"
}
},
{
"id": 980,
"controlNumber": "4498818",
"ItemNumber": "PS2W12077",
"shipment": {
"id": 27,
"Item": "PS2W12077",
"ColorCode": "GRPFR",
"qty": "$1,638"
}
}
]

我在模型上得到did关系的方式如下

public function Openorder()
{
$object = $this->hasOneThrough(OpenorderImportTemp::class, 'ItemNumber',  'Item');
return $object;
}

然后控制器上的抓取在

下面
$openorder_data = OpenorderImportTemp::
select('id', 'controlNumber', 'ItemNumber', )
->with('shipment:id,Item,ColorCode,qty')
// ->groupBy('controlNumber')
->orderby('id', 'desc')
->where('ControlNumber', '!=', '0')
->get();

可以根据需要将字符串更改为整数。我所尝试的如下

$openorder_data = OpenorderImportTemp::
select('id', 'controlNumber', 'ItemNumber', DB::raw("SUM(shipment.qty) as qtysum") )
->with('shipment:id,Item,ColorCode,qty')
// ->groupBy('controlNumber')
->orderby('id', 'desc')
->where('ControlNumber', '!=', '0')
->get();
protected $casts = [
'qty' => 'integer',
];

on model解决我的问题。它将字符串更改为整数

最新更新