У меня когда открываешь 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)