Почему ничего не загружается Yii 2 - PullRequest
1 голос
/ 27 февраля 2020

Когда я собираюсь "просмотреть" представление, ничего не загружается, даже макет по умолчанию, который содержит верхний и нижний колонтитулы HTML, поэтому в исходном коде ничего не отображается.

Код из контроллеров :

    public function actionArt($type){
        $compositions = Compositions::find()
            ->select(['id', 'name'])
            ->where('type' == $type)
            ->asArray()
            ->all();

        return $this->render('art', ['compositions' => $compositions]);
    }

    public function actionView($id){
        $info = Compositions::find()->where($id)->all();
        $this->render('view', ['info' => $info]);
    }

Код из представлений:

ПРОСМОТР "АРТ":

<?php

/* @var $compositions */

use yii\helpers\Html;
use yii\helpers\Url;

?>

<div class="site-art">
    <?php foreach ($compositions as $composition){
        Html::a(Html::encode($composition['name']), ['site/info', 'id' => $composition['id']]);
        echo "<a href='" . Url::to(['site/view', 'id' => $composition['id']], true) . "'>{$composition['name']}</a><br>";
    } ?>
</div>

ПРОСМОТР "ПРОСМОТРА":

<?php

/* @var $info */

use yii\helpers\Html;
use yii\helpers\Url;

var_dump($info);

?>

<div class="site-info">
    hwerasjdajsdajsk
</div>

1 Ответ

6 голосов
/ 27 февраля 2020

Вы должны вернуть результат render(), а не просто вызвать его.

return $this->render('view', ['info' => $info]);

Также этот

Html::a(Html::encode($composition['name']), ['site/info', 'id' => $composition['id']]);

сейчас ничего не делает. Вы должны повторить его, чтобы он в основном делал то же, что и строка под ним сейчас. Но лучше, потому что он html кодирует $composition['name'].

...