Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Render html in yii2 Gridview Widget

Tags:

php

gridview

yii2

That's how I am rendering the values on a grid view

enter image description here

but instead of links I can see the textual value.

enter image description here

How can I make it render html instead of text?

like image 799
Danyal Sandeelo Avatar asked Feb 22 '17 07:02

Danyal Sandeelo


3 Answers

In link column configuration add:

'format' => 'html',

or if you want some extra markup there

'format' => 'raw',

In case of raw remember to encode values coming from outside users because it's not done automatically.

like image 182
Bizley Avatar answered Nov 16 '22 14:11

Bizley


<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'name',
        'email:email',
        'timestamp:date',
        [
            'attribute'=>'Resume',
            'format' => 'raw',
            'class' => 'yii\grid\DataColumn', // can be omitted, as it is the default
            'value' => function ($data) {
                $url = "www.sample.com/contactform/resumes".$data->resumepath;
                return Html::a('<i class="glyphicon glyphicon-download-alt"></i>', $url);
            },
        ],

        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>
like image 2
Nikhil Dinesh Avatar answered Nov 16 '22 15:11

Nikhil Dinesh


A better way of doing this in Yii.

'value' => function ($data) {
    return Html::a($data->name, [$data->url, 'someData' => $data->someData]);
}

Yii Doc: https://www.yiiframework.com/doc/api/2.0/yii-helpers-basehtml#a()-detail

A little late on the post but, hope it helps the in future.

like image 3
Harsh Girdhar Avatar answered Nov 16 '22 15:11

Harsh Girdhar