【问题标题】:Convert String to integer on Laravel relationship object在 Laravel 关系对象上将字符串转换为整数
【发布时间】:2021-12-14 00:52:42
【问题描述】:

我有一个由 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"
            }
        }
]

我得到的模型关系如下

    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();

【问题讨论】:

    标签: php eloquent laravel-8 laravel-7 laravel-6


    【解决方案1】:
    protected $casts = [
            'qty' => 'integer',
        ];
    

    在模型上解决了我的问题。将字符串更改为整数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      相关资源
      最近更新 更多