Значок вставки YII2 в виде сетки

В gridview есть столбец даты. Бывают случаи, когда дата пуста. Что я хочу, так это то, что если дата пуста, она будет отображать значок «x» красного цвета, а если в нем есть дата, он будет отображать значок проверки зеленым цветом. Как это делается в gridview?

Вот код на данный момент...

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            [
                'attribute'=>'province',
                'value'=>'incomingSp.brgyCode.cityCode.province.prov_name',
            ],
            [
                'attribute'=>'city',
                'value'=>'incomingSp.brgyCode.cityCode.city_name',
            ],
            [
                'attribute'=>'brgy',
                'value'=>'incomingSp.brgyCode.brgy_name',
            ],
            [
                'attribute'=>'title',
                'value'=>'incomingSp.sp_title',
            ],

            'incoming_sp_id',
            'date_encoded',
            'encoded_by',
            ['class' => 'yii\grid\ActionColumn',
                'template'    => '{view}{update}{delete}',
            ],
        ],
    ]); ?>

person beginner    schedule 24.04.2015    source источник


Ответы (2)


Расширьте объявление столбца date_encoded следующим образом:

[
    'attribute' => 'date_encoded',
    'format' => 'raw',
    'value' => function ($model) {
        if ($model->date_encoded === null) {
            return 'x'; // "x" icon in red color
        } else {
            return 'v'; // check icon 
        }
    },
],

Официальные документы:

person arogachev    schedule 24.04.2015
comment
я пробовал это return "<i class='fa fa-times'></i>";, но он отображал весь ‹i class='fa fa-times'›‹/i›; не значок из бутстрапа. - person beginner; 24.04.2015

Я установил «формат» => «html», затем могу показать его как значок, а не как необработанный текст.

person Yundong Cai    schedule 15.03.2016