У меня есть простой элемент CRUD, который называется Filters.Здесь каждому фильтру присваивается категория с внешним ключом.Я пытаюсь выполнить цикл по каждому ключу foregin, чтобы получить имя категории, а не id для отображения пользователю.
Сначала я получаю все фильтры и выполняю команду die / dump, чтобы проверить, все ли там результаты иони есть.
При попытке присвоить имя категории правильному элементу массива я получаю эту ошибку:
"Косвенное изменение перегруженного элемента App \ Filter не имеет никакого эффекта"
Итак, чтобы проверить, что происходит, я умираю / сбрасываю внутри цикла foreach, и те же самые данные теперь исчезли.Даже если я просто вставлю цикл foreach без изменения исходного массива, когда я передам его обратно в представление, оно было неустановленным.
Я очень наивен и не понимаю, что этот цикл foreach делает этоуничтожает эти данные ???
Я скопировал код ниже и прокомментировал, где работает и не работает дд;
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);
}