在yii2表小部件中显示时合并两列

时间:2015-08-19 07:26:10

标签: yii yii2 widget

使用yii显示表的代码是

<?= GridView::widget([
                'dataProvider' => $dataProvider,
                'filterModel' => $searchModel,
                'columns' => [
                    ['class' => 'yii\grid\SerialColumn'],

                    'HRMS_candidateFirstName',
                    'HRMS_candidateLastName',
                     'HRMS_candidaterRefType',
                     'HRMS_candidateStatus',
                   ['class' => 'yii\grid\ActionColumn'],
                ],
            ]);

它将名字和姓氏打印为不同的col。像这样enter image description here

我想要这样

enter image description here

我在文档中搜索但无法找到。

怎么做?

2 个答案:

答案 0 :(得分:3)

您必须构建计算列

在这里你可以找到一个非常好的tutorial 基本上,您必须向模型中添加$parentContext列的函数,如此

在模型中

calculate

视图

/* Getter for person full name */
public function getFullName() {
   return $this->first_name . ' ' . $this->last_name;
}

/* Your model attribute labels */
public function attributeLabels() {
   return [
       /* Your other attribute labels */
       'fullName' => Yii::t('app', 'Full Name')
   ];
}

如果你不需要文件管理器和sortig,那么你可以在教程中找到你需要的内容..

答案 1 :(得分:0)

可以直接在视图文件中完成 -

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'id',
        [
            'attribute' => 'an_attributeid',
            'label' => 'yourLabel',
            'value' => function($model) { return $model->first_name  . " " . $model->last_name ;},
        ],
        ['class' => 'yii\grid\ActionColumn',],
    ],
]);?>