view中
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['attribute'=>'audio', 'format'=>'html', 'value'=>function($model){
return '<div><audio controls=""><source src="https://www.yiichina.com/question/935'.WEBURL.$model->audio.'" type="audio/mp3"></audio></div>';
}],
],
]); ?>
但最终显示
<td><div></div></td>
audio标签没有了,如果不用GridView直接写audio标签是没问题的。小伙伴们有没有遇到过?
这里的value
换成content
试试。
看了下DataColumn
的实现,如果设置value而非Column
的content属性时,DataColumn会默认调用$this->grid->formatter->format
对内容进行格式化。
至于为啥过滤掉你的audio标签,可能是你的写法不符合w3c标准?参考w2c School提供的案例:http://www.w3school.com.cn/html5/html5_audio.asp
配置有问题,请参考样例:
http://www.yiichina.com/doc/api/2.0/yii-grid-gridview#$columns-detail