是否可以在yii2中的gridview的datacolumn中设置相关模型的标签值

时间:2016-01-24 17:17:27

标签: php gridview yii2

与我的问题相关,我在互联网上搜索了很多,但没有找到我的问题的答案。

我尝试在yii2中的gridview中完成一个简单的任务,详情如下。

<?=
GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'id',
        'Name',
        'Email:email',
        'Phone',
        'Age',
        [
            'class' => yii\grid\DataColumn::className(),
            'label' =>'Custom',
            'attribute' => 'cusId',
            'format'=>'html',
            'value' => function ($model) {
                return Html::a($model->cus->Key, ['customobj/view', 'id' => $model->cusId],['class' => 'btn btn-success']);
            },
            'filter' => yii\helpers\ArrayHelper::map(app\models\Customobj::find()->all(), 'Id', 'Key')
        ],
        ['class' => 'yii\grid\ActionColumn'],
    ],
]);
?>

上面的代码工作正常。现在我想在下面的相关模型中制作标签动态。

[
        'class' => yii\grid\DataColumn::className(),
        'label' =>'Custom',
        'attribute' => 'cusId',
        'format'=>'html',
        'value' => function ($model) {
            return Html::a($model->cus->Key, ['customobj/view', 'id' => $model->cusId],['class' => 'btn btn-success']);
        },
        'filter' => yii\helpers\ArrayHelper::map(app\models\Customobj::find()->all(), 'Id', 'Key')
    ],

我试过下面的代码,但它给出了

  

块引用   htmlspecialchars()期望参数1是字符串,给定对象   块引用

[
            'class' => yii\grid\DataColumn::className(),
            'label' => function ($model) {
                return $model->cus->Key;
            },
            'attribute' => 'cusId',
            'format'=>'html',
            'value' => function ($model) {
                return Html::a($model->cus->Key, ['customobj/view', 'id' => $model->cusId],['class' => 'btn btn-success']);
            },
            'filter' => yii\helpers\ArrayHelper::map(app\models\Customobj::find()->all(), 'Id', 'Key')
        ],

我正在使用yii2版本。 任何帮助将受到高度赞赏

1 个答案:

答案 0 :(得分:2)

尝试使用标题

$varHeader = yourFuntion();

[
        'class' => yii\grid\DataColumn::className(),
        'header' =>  $varHeader ,
        'attribute' => 'cusId',
        'format'=>'html',
        'value' => function ($model) {
            return Html::a($model->cus->Key, ['customobj/view', 'id' => $model->cusId],['class' => 'btn btn-success']);
        },
        'filter' => yii\helpers\ArrayHelper::map(app\models\Customobj::find()->all(), 'Id', 'Key')
    ],