web-dev-qa-db-ja.com

yii2グリッドビューウィジェットでHTMLをレンダリングする

これがグリッドビューで値をレンダリングする方法です

enter image description here

リンクの代わりに、テキストの値を見ることができます。

enter image description here

テキストではなくhtmlをレンダリングするにはどうすればよいですか?

11
Danyal Sandeelo

リンク列の構成に次を追加します。

'format' => 'html',

または、そこに追加のマークアップが必要な場合

'format' => 'raw',

rawの場合は、自動的に行われないため、外部ユーザーからの値をエンコードすることを忘れないでください。

17
Bizley

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

投稿の少し遅いですが、それが将来に役立つことを願っています。

2
Harsh
<?= 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'],
    ],
]); ?>
1
Nikhil Dinesh