iNickolay
@iNickolay

Почему выбрасывает ошибку в view во время foreach?

Здравствуйте, имеется три таблицы которые связаны отношениями.

В контроллере передаём данные в шаблон:
$calculators = $request->user()->calculators()->get();
return view('test-view', [ 'temp' => $calculators ]);


Когда в шаблоне я вывожу
echo $temp[0]->category->name;
то отображает имя категории, а если так:

echo $temp[0]->category->name;
// или
foreach ($temp as $calculator) {
    echo '<pre>'; var_dump($calculator->category->name); echo '</pre>';
}


то завершается с ошибкой.
Trying to get property of non-object


У всех сущностей категории указаны.
Как можно получить имя категории?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
Когда в шаблоне я вывожу
echo $temp[0]->category->name;
то отображает имя категории, а если прогнать через foreach:

Потому что так вы выводите название категории первой сущности, а foreach проходит по всем, значит у какой-то сущности нет категории
Ответ написан
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Все очень просто, у одной из $calculator нет category, конкретно у первой очевидно есть.
Проверьте так:
foreach ($temp as $key=>$calculator) {
    echo (isset($calculator->category))?$calculator->category->name:'не задано для '.$key;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы