我想在CDetailView
以前以MarkDown格式编码的 a 中显示一些文本。
这是我的视图代码:
<?php
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'title',
array(
'name'=>'text',
'type'=>'raw',
'value'=>$this->markdown->transform($model->text)
),
'author_id',
'date_added',
),
));
?>
在我的控制器中,我实例化了一个CMarkDown
像这样的过滤器:
private $_markdown = null;
public function getMarkdown()
{
if ( $this->_markdown === null)
{
$this->_markdown = new CMarkdown();
$this->_markdown->purifyOutput = true;
}
return $this->_markdown;
}
注意我是如何明确设置purifyOutput
为true
.
所以我创建了一个充满诸如选框和注入javascript之类的模拟帖子,以查看它的行为方式,它根本没有过滤任何东西!我的脸上出现了警报,选框很高兴在页面上四处移动……
我找到了一种解决方法,可以设置'type'=>'html'
但CDetailView
我不需要这样做,我应该吗?
当我调用该方法时,该purifyOutput
选项不应该为我过滤掉不需要的东西吗?->transform()
请帮忙。