【问题标题】:Illuminate Eloquent manipulate result照亮雄辩的操纵结果
【发布时间】:2016-11-04 02:38:02
【问题描述】:

在 Eloquent 5.2.7 中,我可以使用

添加到结果集中
foreach($page as $xp => $xv) {
    $content[0]->{$xp} = $xv;
}

其中$contentDB::table()->get() 结果。

现在,在最新版本中,我收到以下错误:

间接修改 Illuminate\Support\Collection 的重载元素在

中无效

未定义的偏移量:/vendor/illuminate/support/Collection.php 中的 0

我想我明白原因,这与 PHP 和 ArrayAccessoffsetGet 有关,但我无法弄清楚如何有效地“以正确的方式”做我正在做的事情

【问题讨论】:

    标签: php eloquent


    【解决方案1】:

    也可以使用集合map()方法循环遍历修改结果:

    DB::table()->get()->map(function($content) use ($page) {
        foreach($page as $xp => $xv) {
            $content->{$xp} = $xv;
        }
    
        return $content;
    });
    

    【讨论】:

    • 谢谢。我更喜欢这种方法。
    【解决方案2】:

    经过更多调试,看起来我可以像那样操作数据,但我不能将空数据传递给它 - 需要检查空数组。

    另外为了显示我需要添加$content->all()

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 1970-01-01
      • 2021-12-15
      • 2016-06-09
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 2015-02-14
      • 2015-12-18
      相关资源
      最近更新 更多