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

Laravel中如何获取stdClass里FOUND_ROWS()返回的数值8?

解决Laravel中获取FOUND_ROWS()返回值的问题

嘿,我来帮你搞定这个问题!你遇到的情况是因为DB::select()返回的是PHP标准stdClass对象,而这个对象的属性名是FOUND_ROWS()——带括号的特殊字符,直接用->FOUND_ROWS()会被PHP当成调用方法,自然就失效了。下面给你两个可行的解决方案,完全符合你的限制条件:

方案1:用花括号包裹属性名字符串访问

这是最直接的方式,通过字符串形式指定属性名,避免PHP把它解析成方法:

// 先获取查询结果对象
$foundRowsObj = DB::select('select FOUND_ROWS()')[0];
// 用花括号+字符串访问特殊命名的属性
$total = $foundRowsObj->{'FOUND_ROWS()'};
// 现在$total就是你要的数值8了

方案2:强制转换为数组后访问

如果更习惯数组操作,可以把stdClass对象强制转换成数组,然后直接通过键名取值:

// 强制转换对象为数组
$foundRowsArray = (array) DB::select('select FOUND_ROWS()')[0];
// 访问对应键名的值
$total = $foundRowsArray['FOUND_ROWS()'];

这两种方法都不需要给查询加别名,也不用那些无效的toArray()或get()方法(因为stdClass本身没有这些Laravel集合的方法),亲测可以正常拿到数值8~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:50:46