在yii2 gridview中,我有这个代码:
$dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], [ 'label' => 'bla', 'format' => 'url', 'value' => function ($data) { return Html::url('site/index'); }, ], ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
在网格视图中,使用url地址生成文本.
/学术界 - 新/高级/管理/网站/指数
网址工作正常,但如何为链接设置文字?
用'format' => 'raw'
而不是 'format' => 'url'
.
我从yii的贡献者Samdark那里得到了解决方案.需要使用format =>'raw':
... 'format' => 'raw', 'value'=>function ($data) { return Html::a(Html::encode("View"),'site/index'); },
需要使用Html :: encode()来逃避XSS
解:
= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], [ 'label'=>'bla', 'format' => 'raw', 'value'=>function ($data) { return Html::a(['site/index']); }, ], ['class' => 'yii\grid\ActionColumn'], ], ]); ?>