URL-адрес в коде с Yii2 GridView в
в Yii2 gridview у меня есть этот код:
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yiigridSerialColumn'],
[
'label'=>'bla',
'format' => 'url',
'value'=>function ($data) {
return Html::url('site/index');
},
],
['class' => 'yiigridActionColumn'],
],
]); ?>
в представлении сетки создается текст с url-адресом.
/ academia-new/advanced/admin/site / index
Url работает нормально, но как я могу установить текст для ссылки?
7 ответов
Я получил решение от Samdark, участника yii. необходимо использовать формат=> 'raw':
...
'format' => 'raw',
'value'=>function ($data) {
return Html::a(Html::encode("View"),'site/index');
},
необходимо использовать Html:: encode () для ecape 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'],
],
]); ?>
попробовать
return Html::a('link_text','site/index');
https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseHtml.php
использовать формат raw
<?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'],
],
]); ?>
Я думаю, что получил решение:
код:
'value'=>function ($data) {
return Html::url('site/index');
},
должно быть немного изменен. Скажем, ваше имя поля в массиве "страна", тогда код должен быть таким:
'value'=>function ($data) {
return Html::a($data['country'], ['site/index']);
},
Так вместо Html:: url я Html:: a и добавленное значение гиперссылки как $data ['country']. Надеюсь, это поможет.
попробовать ниже код.
GridView::widget([
'dataProvider' => $dataProvider,
'rowOptions' => function ($model, $index, $widget, $grid) {
return [
'id' => $model['id'],
'onclick' => 'location.href="'
. Yii::$app->urlManager->createUrl('controllerName/view')
. '?id="+(this.id);'
];
},
...
])