拉拉维尔。toArray() 转换后无法将 StdClass 类型的对象用作数组

qqm*_*ing 5 php arrays object laravel

对我来说这看起来很奇怪。

无法将 stdClass 类型的对象用作数组

我将查询转换为数组。

$query = DB::table('users')->where('name','=','Alex')->get()->toArray();
Run Code Online (Sandbox Code Playgroud)

检查了我的变量gettype($query);,它说Array.
还检查了它var_dump($query);,它也显示了Array

那么为什么$query在 foreach 中循环 my 时我必须使用$item->name并且无法将项目作为数组访问$item['name']

Ale*_*nin 5

当您使用 时toArray(),您会得到一个对象数组,因此您仍然需要使用:

$item->name
Run Code Online (Sandbox Code Playgroud)

如果要将其转换为数组的数组,请执行以下操作:

$users = DB::table('users')->where('name', 'Alex')->get();
$users->transform(function($i) {
    return (array)$i;
});
$array = $users->toArray();
Run Code Online (Sandbox Code Playgroud)