@Leffken
Студент, как студент!

Как можно сгенерировать html код в модели yii2?

Возникла потребность создавать html код в модели или контроллере, затем передавать его в представление и там уже его отрисовывать. Примерно я себе представляю это так, но ничего не получается. Есть ли вообще такая возможность ?
Модель
public function getImage()
    {
        $str = '';        
        foreach ($this->file as $img) { // file - геттер связи с другой таблицей
            $str = $str + Html::img(Url::to([$img->Image]), ['width'=>'100px']) + ' ';
// Image - атрибут, в котором храниться путь к файлу 
        }
        return $str;
    }


Представление
<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            // other att
            [
                'label' => 'Картинки',
                'value' => $model->image, 
            ],
        ],
    ]); ?>


Я думаю что точно так же можно будет делать и с контроллером (генерировать там код и отправлять в представление)

PS Для таких манипуляций нужно добавить 'format' => 'html' перед value
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
@Leffken Автор вопроса
Студент, как студент!
Работает вот так
Модель
public function getImage()
    {
        $str = '';
        foreach ($this->file as $img) {
            $str = $str . Html::img(Url::to([$img->Image]), ['width'=>'100px']) . ' ';
        }
        return $str;
    }

Представление
<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            // other attr
            [
                'label' => 'Image',
                'format' => 'html',
                'value' => $model->image, 
            ],
        ],
    ]); ?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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