Yii2 GridView Настроить строку заголовка

В моем коде зрения у меня есть следующее:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
             ['label' => 'Training Score',
               'attribute' => 'scoreTraining',
               'format' => ['decimal',2],
             ],
             ['label' => 'Exam Score',
               'attribute' => 'scoreExam',
               'format' => ['decimal',2],
             ],
        ],
    ]);

Обычно имя заголовка будет "Training Score" и "Exam Score"

Возможно ли в gridview yii2 настроить строку заголовка? так что строка заголовка выглядит как в строке 2.

<table border=1>
  <tr><th>Training <br> Score</th><th>Exam <br> Score</th></tr>
</table>

Ответы

Ответ 1

Чтобы добиться этого, используйте header свойство вместо label:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'header' => 'Training <br> Score',
            'attribute' => 'scoreTraining',
            'format' => ['decimal', 2],
        ],
        [
            'header' => 'Exam <br> Score',
            'attribute' => 'scoreExam',
            'format' => ['decimal', 2],
        ],
    ],
]);

Таким образом, HTML-контент не будет закодирован.

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

Ответ 2

Используйте атрибут 'label' для установки заголовка:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $label-detail

Таким образом, функция сортировки по-прежнему будет работать.

Используйте 'encodeLabel' = > false, чтобы позволить HTML-объектам, таким как
, работать:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $encodeLabel-detail

Пример:

 [
              'attribute' => 'firstname',
              'label' => 'First <br /> Name',
              'encodeLabel' => false,
 ],