Encoderast
@Encoderast
frontend пытается что-то делать в backend

Ошибка при жадной загрузке Yii2 — «Invalid argument» — выручайте!?

Всем привет!

Контроллер:
$query = Product::find()->where(['category_id' => $id])->with('size');
$products = $query->offset($pages->offset)->limit($pages->limit)->all();
return $this->render('view', compact('products', 'pages', 'category'));


Модель Product:
public function getSize(){
        return $this->hasOne(Sizes::className(), ['id' => 'size_id']);
    }


Модель Sizes
public function getProducts(){
        return $this->hasMany(Product::className(), ['size_id' => 'id']);
    }


Вьюха:
<?php
foreach($products as $product) {
    echo "<h2>Название : " . $product->name . "</h2>";
    echo "<ul>";
    foreach($product->size as $sizes) {  // no query executed here
        echo "<li>" . $sizes->$size_p . "</li>";
    }
    echo "</ul>";
}
?>


Пытаюсь вывести размерную сетку по id продукта

Картинки БД:
Жмяк
59eb90b47cf07020767279.png59eb90bc37b96999253193.png
Ошибка (Жмяк)
59eb90e772e2d412920058.png


Не понимаю почему не работает foreach, выручайте, вскипел!
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ну вот тут же написано HASONE
public function getSize(){
        return $this->hasOne(Sizes::className(), ['id' => 'size_id']);
    }

Значит foreach тут пройти нельзя. $product->size – это не массив у тебя, а объект
Ответ написан
Ваш ответ на вопрос

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

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