@hollanditkzn

Как сделать, чтобы отображались данные?

У меня когда открываешь gridview в виджете, то не получается выводить данные, пишут нулевые, но разобраться я так и не смог. Использую виджет картика demos.krajee.com/grid-demo
То есть у одного заказа, может быть много комментариев, но проблема в том что даже выводом var_dump я получаю null
В gridView
<?= GridView::widget([
        'dataProvider' => $dataProvider,
        ...
        'columns' => [
            [
                'class'=>'kartik\grid\ExpandRowColumn',
                'contentOptions' => function($model, $key, $index, $grid){
                    return ['id' => $model->id_zakaz, 'class' => 'border-left', 'style' => 'border:none'];
                }, 
                'width'=>'10px',
                'value' => function ($model, $key, $index) {
                    return GridView::ROW_COLLAPSED;
                },
                'detail'=>function ($model, $key, $index, $column) {
                    $comment = new Comment();
                    return Yii::$app->controller->renderPartial('_zakaz', ['model'=>$model, 'comment' => $comment]); //раскрывает блок заказа. Контроллер  находится actionZakaz;
                },
                'enableRowClick' => true,
                'expandOneOnly' => true,
                'expandIcon' => ' ',
                'collapseIcon' => ' ',
            ],
            ...
        ],
    ]); ?>

Внутри раскрывающего блока ExpandRowColumn
<div class="comment-zakaz">
        <?php  
var_dump($comments->date) //тут я получаю значение null
 ?>
    </div>
    <div>//Этот блок сохраняет комментарий, он нормально работает
        <?php $formComment = ActiveForm::begin([]); ?>
        <?php if ($model->status == 3){
            $comment->sotrud = 3;
            $sotrud = $comment->sotrud;
        } elseif($model->status == 4){
            $comment->sotrud = 4;
            $sotrud = $comment->sotrud;
        }
        ?>
        <div class="col-lg-11">
            <?= $formComment->field($comment, 'comment')->textarea(['placeholder' => 'Комментарий', 'rows' => 1])->label(false) ?>
            <?= $formComment->field($comment, 'id_user')->hiddenInput(['value' => Yii::$app->user->getId()])->label(false)?>
            <?= $formComment->field($comment, 'sotrud')->hiddenInput(['value' => $sotrud])->label(false)?>
            <?= $formComment->field($comment, 'id_zakaz')->hiddenInput(['value' => $model->id_zakaz])->label(false)?>
        </div>
        <div class="col-lg-1">
            <?= Html::submitButton(' <span class="glyphicon glyphicon-send"></span>', ['class' => 'btn btn-primary', 'style' => '    color: white;
                                font-size: 15px;
                                margin-top: 0px;
                                margin-left: -30px;
                                border-radius: 45px;'])?>

        </div>
        <?php ActiveForm::end(); ?>
    </div>

И в контроллере
public function actionZakaz($id){
        $model = $this->findModel($id);//модель Заказа
        $comments = Comment::find()->where(['id_zakaz' => $model->id_zakaz]);//Пробовал по разному, даже так $comments = Comment::findOne($id), но никак не получается, то есть должен выводить все комментарий у данного заказа

        return $this->renderPartial('_zakaz', [
            'model' => $model,
            'comments' => $comments,
            ]);
    }

Комментарий у меня все нормально сохраняет, а вот вывести не получается, колонки в comment:
id (int)
id_user (int)
sotrud (int)
id_zakaz (int)
date (timestamp)
comment (text)
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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