Foreach循环似乎破坏了Laravel / PHP 7中的数组

时间:2018-09-16 11:21:41

标签: php laravel

我有一个简单的CRUD项目,称为“过滤器”。在此,将每个过滤器分配给带有外键的类别。我想做的是遍历每个foregin键来获取类别名称,而不是ID以显示给用户。

我首先获得所有过滤器,并执行一次模/转储检查所有结果是否存在。

当尝试将类别名称分配给正确的数组项时,出现此错误:

“间接修改App \ Filter的重载元素无效”

所以要检查发生了什么事情,我已经死/倾倒在foreach循环中,并且完全相同的数据现在已经消失了。即使我只是在没有修改原始数组的情况下放入了一个foreach循环,当我将其传递回视图时,它仍未设置。

我很天真,没有意识到这个foreach循环会破坏这些数据?

我已在下面复制了我的代码,并注释了dd可以工作的地方和不可以工作的地方;

public function show()
{   
    $filter = [];
    $filter['filters'] = Filter::all();

    //dd($filter['filters']); --this works fine here
    foreach($filter['filters'] AS $key => $filter){
    //dd($filter['filters']); --this returns null here
        $category = Category::where('id', $filter->category)->first();
        $filter['filters'][$key]->category = $category->category;
    }

    return view('admin.crud.filters.index')->with('filter', $filter);
}

1 个答案:

答案 0 :(得分:1)

请勿重新初始化具有相同名称的变量或其他数据类型

尝试将$ filter更改为foreach循环中的其他内容。因为您已经有一个同名的数组。

执行以下操作:

    view.addSubview(firstDotView!)
    imgPreViewOutlet.center = firstDotView!.centerde here