You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何返回Integer类型值而非JSON结构结果

问题描述

开发时查询得到的价格数据结构为{price:100},需要移除外层键名结构,直接输出整数类型的100。当前实现代码如下:

function each() {
    $Offer_price = Offer::select('price')->get();
    foreach ($Offer_price as $Price) {
        return  $Price; // 期望输出100,而非{price:100}结构
    }
}

当前代码遍历返回$Price时,得到的是带字段键名的对象/JSON结构{price:100},需要返回100对应的Integer类型纯值。

问题原因
  • 调用get()获取到的是Eloquent模型实例组成的集合,遍历得到的$Price是模型对象,直接返回对象会被序列化为带字段名的键值结构。
  • 现有代码在循环内直接执行return,只会返回集合中第一条数据,不会遍历全部结果。
解决方案

根据实际业务场景选择对应写法即可:

仅需获取第一条数据的price值

不需要手动写循环,直接调用查询构造器的value()方法,会自动取第一条匹配数据,直接返回对应字段的纯值:

function each() {
    // 直接返回第一条数据的price字段整数值
    return Offer::value('price');
}

需要获取所有数据的price值集合

用pluck()方法可直接提取指定字段的所有值,返回纯值构成的数组,不需要手动循环:

function each() {
    // 返回格式示例:[100, 200, 300],为所有价格的纯整数值集合
    return Offer::pluck('price')->all();
}

必须保留foreach循环逻辑

在循环内直接访问模型实例的属性即可拿到纯值,如果需要返回所有结果,要先把值存入数组,等循环结束后再返回,不要在循环内直接return:

function each() {
    $Offer_price = Offer::select('price')->get();
    $priceList = [];
    foreach ($Offer_price as $Price) {
        // 访问模型的price属性取值,(int)强制转换为整数类型
        $priceList[] = (int)$Price->price;
    }
    return $priceList;
    // 仅需第一条值的话,直接写 return (int)$Offer_price->first()->price; 即可
}

注意:如果要求严格返回Integer类型,取值时可以用(int)做强制类型转换,避免返回字符串类型的数字。

内容的提问来源于stack exchange,提问作者user19465999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:57:50