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

Почему ругается getImage() — Yii2?

Валар Моргулис!

Контроллер

<?php

namespace app\controllers;
use app\models\About;
use Yii;

class AboutController extends AppController
{
    public function actionView()
    {
        $about = About::find()->where(['status' => '1'])->limit(6)->all();
        $this->setMeta('E-SHOPPER О Компании');
        return $this->render('view', compact('about'));
    }
}



Модель

<?php

namespace app\models;
use yii\db\ActiveRecord;


class About extends ActiveRecord{

    public function behaviors()
    {
        return [
            'image' => [
                'class' => 'rico\yii2images\behaviors\ImageBehave',
            ]
        ];
    }

    public static function tableName(){
        return 'about';
    }
}


Вид

<?php foreach($about as $about2): ?>
                            
                            <?php $mainImg = $about->getImage();?>
                            <?= Html::img($mainImg->getUrl('268x249'), ['alt' => $about->name])?>
                            
                            <p><?= $about2->content?></p>
                            
                        <?php endforeach;?>



$content прогружает, а если вставляю изображение, то след. ошибка:
Call to a member function getImage() on array

Картиночки (жмяк)

4916790209214d26b8151bbba6d5fdfb.PNG


Что может быть не так? Уже 5й час тыкаю и все безрезультатно
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
qonand
@qonand
Software Engineer
$about->getImage()

Вы обращаетесь не к объекту а к массиву, а у массива нет метода getImage(), по всей видимости необходимо обращаться к $about2
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы