У меня есть таблица отзывов, которая генерируется с помощью гридвью:
echo GridView::widget([
'id' => 'pages-grid',
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
//'options' => ['class' => ''],
'tableOptions' => ['class' => 'table table-bordered'],
//'rowOptions' => ['class' => ''],
'layout' => '<div class="GridViewSummary">{summary}</div><div class="panel panel-default"><div class="table-responsive">{items}</div><div class="table-footer">{pager}</div></div>',
'columns' => [
[
'attribute' => 'user',
'format' => 'html',
'label' => Yii::t('articles.main', 'Автор'),
'contentOptions' => ['class'=> 'tdAuthor'],
'value' => function ($model) {
return UserColumn::widget([
'userId' => $model->user_id
]);
}
],
[
'attribute' => 'text',
'contentOptions' => ['class'=> 'tdText'],
'format' => 'html',
'value' => function ($model) {
return '<div class="text-left">' . $model->text . '</div>';
}
],
[
'attribute' => 'date_create',
'format' => 'html',
'contentOptions' => ['class'=> 'tdDate'],
'value' => function ($model) {
return '<div class="text-center">' . $model->dateCreate . '</div>';
},
'filter' => '<div class="text-center">' . Yii::t('app','Нет фильтра') . '</div>',
],
[
'attribute' => 'date_update',
'format' => 'html',
'contentOptions' => ['class'=> 'tdDate'],
'value' => function ($model) {
return '<div class="text-center">' . $model->dateUpdate . '</div>';
},
'filter' => '<div class="text-center">' . Yii::t('app','Нет фильтра') . '</div>',
],
[
'format' => 'html',
'contentOptions' => ['class'=> 'tdControl'],
'label' => Yii::t('app', 'Управление'),
'value' => function ($model) {
return '<div class="text-center">'
. Html::a('<i class="icon-wrench"></i>', ['/reviews/default/update', 'id' => $model->review_id]) . ' '
. Html::a('<i class="icon-remove3"></i>', ['/reviews/default/delete', 'id' => $model->review_id])
. '</div>';
},
],
]
]);
Есть два поля, дата добавления и дата редактирования отзыва. Ранее я делал так:
[
'attribute' => 'date_update',
'format' => 'html',
'contentOptions' => ['class'=> 'tdDate'],
'value' => function ($model) {
return '<div class="text-center">' . DateFormat::load()->dateToBigString($this->date_update) . '</div>';
},
'filter' => '<div class="text-center">' . Yii::t('app','Нет фильтра') . '</div>',
],
Этот способ отлично работает, но я попробовал вынести это дело в геттер.
В основной моделе я сделал следующее:
/**
* Возвращает отформатированную дату
* @return string
*/
public static function getDateUpdate()
{
return DateFormat::load()->dateToBigString(self::date_update);
}
И собственно, мне ответили:
Undefined class constant 'date_update'
Честно говоря, я не понял, почему так происходит, и можно ли сделать геттер, который бы возвращал отформатированную дату?