【发布时间】:2016-12-22 09:56:18
【问题描述】:
我正在尝试将一些 HTML 编码字符串显示为位于 Yii2 GridView 中的列中的纯 HTML。来自数据库的字符串如下所示:
Testing <span class='test'>HTML</span>
如果我只是使用 HTML 解码 Html::decode($theStringAbove); 显示它,那么我会在列中得到这个:
Testing <span class='test'>HTML</span>
但是,我的目标只是获取 Testing HTML 并在代码中的 HTML 单词周围添加 span 标记,但不显示为字符串。
我尝试为format 属性设置不同的值,例如raw、url 和html,但均未成功。我编写自定义函数以在value 属性旁边返回正确的输出也没有问题,只是我不知道如何获得我需要的输出。欢迎大家提出建议,谢谢!
编辑:如果有帮助,这是一个小代码 sn-p:
[ 'format' => 'raw',
'value' => function($model) { return Html::decode($model->text); },
'label' => Yii::t('app', 'Some Label')]
【问题讨论】:
-
Format
raw应该会给你正确的 HTML 输出。你能展示一下你这个有问题的列的配置吗? -
如上所述,我已经尝试过 raw。不过,我会用一个小代码 sn-p 来更新问题。
-
您使用的是 DetailView 还是 GridView?上面的代码看起来是一个 DetailView。
-
我正在使用 GridView
-
@mmvsbg 我已经测试了你的 sn-p,我在源代码中看到了
Testing HTML和Testing <span class="test">HTML</span>。这不是你想要的吗?
标签: html gridview yii2 formatting