将 laravel 对象转换为数组

2022-08-30 15:21:21

拉拉维尔输出:

Array
(
    [0] = stdClass Object
    (
        [ID] = 5

    )

    [1] = stdClass Object
    (
        [ID] = 4

    )

)

我想将其转换为普通数组。只是想删除它。我也尝试过使用,但我收到一个错误:stdClass Object->toArray();

在非对象上调用成员函数 toArray()。

我该如何解决这个问题?

功能已在 http://www.srihost.com 上实现


答案 1
foreach($yourArrayName as $object)
{
    $arrays[] = $object->toArray();
}
// Dump array with object-arrays
dd($arrays);

或者当失败时,因为它是一个stdClasstoArray()

foreach($yourArrayName as $object)
{
    $arrays[] =  (array) $object;
}
// Dump array with object-arrays
dd($arrays);

不工作?也许你可以在这里找到你的答案:

将 PHP 对象转换为关联数组


答案 2

自Laravel的5.4版本以来,它不再可能更新。

您可以更改数据库配置,就像@Varun建议的那样,或者如果您只想在这种情况下执行此操作,那么:

DB::setFetchMode(PDO::FETCH_ASSOC);

// then
DB::table(..)->get(); // array of arrays instead of objects

// of course to revert the fetch mode you need to set it again
DB::setFetchMode(PDO::FETCH_CLASS);

有关 5.4 版(> 5.4 版)的新 Laravel,请参阅 https://laravel.com/docs/5.4/upgrade 获取模式部分

Event::listen(StatementPrepared::class, function ($event) {
    $event->statement->setFetchMode(...);
});