У меня проблема при запуске этого метода:
public function getNutritionalValuesPerMeal($item,$nutritionalValues){
foreach (array($nutritionalValues) as $key => $value) {
if (array_key_exists($key, $item->nutritionalValue->attributes)) {
$nutritionalValues[$key] += $item->nutritionalValue->attributes[$key];
}
}
return $nutritionalValues;
}
Исключением является следующее: ![enter image description here](https://i.stack.imgur.com/IvZL3.png)
Когда я изменяю переменные I получил это.
- Для $ item-> nutritionalValue:
![enter image description here](https://i.stack.imgur.com/71dbh.png)
- Для $ item- > nutritionalValue ['calories']:
![enter image description here](https://i.stack.imgur.com/eo0tU.png)
![enter image description here](https://i.stack.imgur.com/49OMZ.png)
Что я не понимаю, так это то, что $ item-> nutritionalValue ['calories'] правильно указан как dd, но консоль сообщает мне, что индекс калорий не может быть найден. Также странным является то, что для строки не выдается никаких исключений:
$nutritionalValues['weight'] = $nutritionalValues['weight'] + $item->nutritionalValue['weight'];
Я использую отношения Eloquent для извлечения nutritionalValue, который связан с ингредиентами.
Спасибо за помощь!
Редактировать: я вызываю функцию внутри al oop:
public function getNutritionalValuesPerDay($mealNutritionalValues,$items,$day){
foreach($items as $item){
switch ($item->pivot->meal) {
case "Breakfast":
$mealNutritionalValues["Breakfast"] = $this->getNutritionalValuesPerMeal($item,$mealNutritionalValues["Breakfast"]);
break;
case "Snack 1":
$mealNutritionalValues["Snack 1"] = $this->getNutritionalValuesPerMeal($item,$mealNutritionalValues["Snack 1"]);
break;
case "Lunch":
$mealNutritionalValues["Lunch"] = $this->getNutritionalValuesPerMeal($item,$mealNutritionalValues["Lunch"]);
break;
case "Snack 2":
$mealNutritionalValues["Snack 2"] = $this->getNutritionalValuesPerMeal($item,$mealNutritionalValues["Snack 2"]);
break;
case "Dinner":
$mealNutritionalValues["Dinner"] = $this->getNutritionalValuesPerMeal($item,$mealNutritionalValues["Dinner"]);
break;
}
}
return $mealNutritionalValues;
}
А теперь у меня ошибка: ![enter image description here](https://i.stack.imgur.com/Pp8kA.png)
Я не понимаю, как это возможно, потому что каждый массив, отправленный этому методу, одинаков ...
Редактировать 2: Проблема решена!