我有一个简单的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);
}
答案 0 :(得分:1)
请勿重新初始化具有相同名称的变量或其他数据类型
尝试将$ filter更改为foreach循环中的其他内容。因为您已经有一个同名的数组。
执行以下操作:
view.addSubview(firstDotView!)
imgPreViewOutlet.center = firstDotView!.centerde here