yii2 неверно отображается массив

Использую GridView виджет от Yii2 Для получения информации в GridView использую DataProvider и делаю запрос в бд, для получения отзыва и комментариев к отзыву (связь настроена).

$dataProvider = new ActiveDataProvider([
            'query' => Review::find()->orderBy(['created_at'=>SORT_DESC])->with('comments'),
            'sort' => false,
            'pagination' => [
                'pageSize' => 30
            ],
        ]);
        return $this->render('reviews',compact('dataProvider'));

Далее сама таблица

<?

use yii\helpers\Html;
use yii\helpers\Url;
use yii\grid\GridView;

$this->context->title = Yii::t('manager','Reviews list');
$this->registerJsFile('web/libs/app/app.js');
?>

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'summary' => false,
    'tableOptions' => [
        'class' => 'table pure',
[
            'format' => 'raw',
            'value' => function($review){
                $comments = $review->comments;
                ?>
                    <div id="myModal" class="modal">
                        <div class="modal-content">
                            <span class="close">&times;</span>
                            <?
                            echo '<pre>';
                            var_dump($comments);
                            echo '</pre>';
                            ?>
                        </div>
                    </div>
                <?
                return Html::a(Yii::t('manager','Comments'), 'javascript:;', [ 'id' => $review->id]);}],
    ],
]) ?>

В коде выше внимание на строку с выводом массива $comments. Он пуст, если находится внутри html кода, однако если вытащить его за пределы, к примеру дампить массив в начале функции, или после html кода - в этом массиве появляются комментарии относящиеся к отзыву.

UPD: Забыл добавить, он именно пуст, он есть, но он пуст - то есть на странице я вижу следующее

следующее.

А если писать вне HTML , то вот

это


Ответы (0 шт):