Yii2 data- * атрибуты не отображаются с помощью GridView Column - PullRequest
0 голосов
/ 11 сентября 2018

Как добавить data-id в функцию ниже:

GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'contentOptions' => ['class' => "text-center"],
            'attribute' => 'scale',
            "format"=>"Html",
            "value"=>function($model){
                return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
            }
        ],
    ],
]);

Вот атрибут data-id, который не отображается в браузере:

"value"=>function($model){
    return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
}

1 Ответ

0 голосов
/ 11 сентября 2018

Вам нужно изменить format для столбца на raw для столбца

GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'contentOptions' => ['class' => "text-center"],
            'attribute' => 'scale',
            "format"=>"raw",
            "value"=>function($model){
                return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';
            }
        ],
    ],
]);

РЕДАКТИРОВАТЬ

Кроме возврата html как,

return '<div class="myClass" data-id="'.$model->id.'">'.$model->scale.'</div>';

Вы можете использовать yii\helpers\Html::tag($name,$content,$options[]) для создания тега div, см. Ниже.

return Html::tag('div',$model->scale,['class'=>'myClass','data'=>['id'=>$model->id]]);
...