Формат атрибута Yii2 GridView определяется другим значением атрибута - PullRequest
0 голосов
/ 11 июня 2018

Я бы хотел определить формат атрибута в GridView на основе значения поля в БД.Я пытался, например, так:

'format' => function ($model) {return $model->format;}, // it should return 'boolean'

, но я пробовал и много других способов, но это не работает.Я получаю:

Уведомление PHP - yii \ base \ ErrorException

Попытка получить свойство необъекта

Если я простовозвращая format как атрибут, он работает без проблем.Кажется, он не принимает его в разделе format.Возможно ли в любом случае, чего я пытаюсь достичь?Не могли бы вы указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

См. Yii2 Formatter

Пример:

<?= GridView::widget([
     'id' => 'grid-list',
     'dataProvider' => $dataProvider,
     [
         'attribute' => 'format_date',
          // 'format' => 'raw',
         'value' => function ($model) {
              // Here use \Yii::$app->formatter->asDate();
              // Ex: return \Yii::$app->formatter->asDate($model->format_date);
              return \Yii::$app->formatter->asDate($model->format_date);
         },
     ],
]) ?>
0 голосов
/ 11 июня 2018

Closure с для format не поддерживаются.Вы можете использовать формат raw и выполнять форматирование в Closure для value:

[
    'attribute' => 'name',
    'type' => 'raw',
    'value' => function ($model) {
        $format = 'as' . ucfirst($model->format);
        return Yii::$app->formatter->$format($model->name);
    },
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...