php - kartik - yii2 gridview column content
URL en gridview yii2 (7)
En yii2 gridview, tengo este código:
<?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''],
],
]); ?>
En la vista de cuadrícula, el texto se está generando con la dirección url.
/ academia-new / advanced / admin / site / index
Url funciona bien, pero ¿cómo puedo configurar un texto para el enlace?
Creo que tengo la solución:
El código:
''value''=>function ($data) {
return Html::url(''site/index'');
},
Debería ser un poco modificado. Deje decir su nombre de campo en matriz ''país'', entonces el código debería ser así:
''value''=>function ($data) {
return Html::a($data[''country''], [''site/index'']);
},
Entonces, en lugar de Html :: url , utilicé Html :: a y agregué valor del hipervínculo como $ data [''country''] . Espero que esto ayude.
Obtuve la solución de Samdark, colaborador de yii. necesita usar format => ''raw'':
...
''format'' => ''raw'',
''value''=>function ($data) {
return Html::a(Html::encode("View"),''site/index'');
},
necesita usar Html :: encode () para ecape XSS
Pruebe el siguiente código.
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);''
];
},
...
])
Use ''format'' => ''raw''
lugar de ''format'' => ''url''
.
solución:
<?= 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''],
],
]); ?>
tratar
return Html::a(''link_text'',''site/index'');
https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseHtml.php
usar formato sin formato
<?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''],
],
]); ?>