yii2 gridview中的URL

Sar*_*oev 47 php gridview yii yii2

在yii2 gridview中,我有这个代码:

<?php echo GridView::widget([
  'dataProvider' => $dataProvider,
  'filterModel' => $searchModel,
  'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    [
       'label' => 'bla',
       'format' => 'url',
       'value' => function ($data) {
            return Html::url('site/index');
       },
    ],
    ['class' => 'yii\grid\ActionColumn'],
  ],
]); ?>
Run Code Online (Sandbox Code Playgroud)

在网格视图中,使用url地址生成文本.

/学术界 - 新/高级/管理/网站/指数

网址工作正常,但如何为链接设置文字?

Aje*_*jey 61

'format' => 'raw'而不是 'format' => 'url'.


Sar*_*oev 24

我从yii的贡献者Samdark那里得到了解决方案.需要使用format =>'raw':

...    
'format' => 'raw',
     'value'=>function ($data) {
        return Html::a(Html::encode("View"),'site/index');
    },
Run Code Online (Sandbox Code Playgroud)

需要使用Html :: encode()来逃避XSS


yac*_*100 9

解:

<?=  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'],
  ],
]); ?>
Run Code Online (Sandbox Code Playgroud)

  • return Html::a(['site/index']) 在 yii2 中不起作用 -&gt; 错误,尝试 return Html::a('link','site/index'); (2认同)

小智 5

使用原始格式

<?php echo GridView::widget([
  'dataProvider' => $dataProvider,
  'filterModel' => $searchModel,
  'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    [
           'label'=>'url',
           'format' => 'raw',
       'value'=>function ($data) {
            return Html::a('there is your label',['site/index']);
        },
    ],
    ['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)