Yii2 data-* атрибуты не отображаются с помощью GridView Column
Как добавить 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 ответ
Решение
Вам нужно изменить 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]]);