Php 无法将stdClass类型的对象用作Laravel中的数组
我得到了以下错误: PHP致命错误:无法在第115行的C:\xampp\htdocs\enginepoker2\storage\framework\views\10cbd076bede57a96e59c43af0e1b9e02b4a69.PHP中将stdClass类型的对象用作数组 查询生成器:Php 无法将stdClass类型的对象用作Laravel中的数组,php,mysql,database,laravel,laravel-blade,Php,Mysql,Database,Laravel,Laravel Blade,我得到了以下错误: PHP致命错误:无法在第115行的C:\xampp\htdocs\enginepoker2\storage\framework\views\10cbd076bede57a96e59c43af0e1b9e02b4a69.PHP中将stdClass类型的对象用作数组 查询生成器: $statsMoneyInPlay = DB::table('enginepoker_log.poker') ->select( DB::raw("UNIX_TIMESTA
$statsMoneyInPlay = DB::table('enginepoker_log.poker')
->select(
DB::raw("UNIX_TIMESTAMP(Date(ts)*100) as timestamp"),
DB::raw("SUM(pot + p1pot + p2pot + p3pot + p4pot + p5pot + p6pot + p7pot + p8pot + p9pot) / count(*) As moneyInPlay")
)
->groupBy(DB::raw("DATE(ts)"))
->orderByRaw("DATE(ts)")
->get()
->toArray();
获取错误的刀片服务器:
@php
foreach ($statsMoneyInPlay as $key => $value) {
echo "[".$value[0].", ".$value[1]."],";
}
@endphp
错误源于对阵列本身的误用。请尝试以下操作:
foreach($statsMoneyInPlay as $stat) {
echo "[" . $stat['timestamp'] . ", " . $stat['moneyInPlay'] . "]";
}
编辑:
$statsMoneyInPlay
是一个对象数组,因此访问它的正确方法是:
foreach($statsMoneyInPlay as $stat) {
echo "[" . $stat->timestamp . ", " . $stat->moneyInPlay . "]";
}
该DB查询返回
stdClass
对象的集合。它不返回数组的集合。对该集合调用toArray
将为您提供一个stdClass
对象数组
@foreach ($statsMoneyInPlay as $value)
[ {{ $value->timestamp }}, {{ $value->moneyInPlay }} ],
@endforeach
使用dd($statsMoneyInPlay)时的输出是什么;在查询生成器之后的控制器中?这是输出,请尝试将此对象转换为数组,$statsMoneyInPlay=(数组)$statsMoneyInPlay@MuhammadRomiMuhtarom修正了,lagboxok应该对上面的答案给予适当的信任,我仍然得到一个错误这是一个错误,说的是未损坏的SyntaxError:意外标记,