使用zii组件的时候如果如果ar对象属性中含有html字符的问题


<?php $this->widget('zii.widgets.CDetailView', array(

	'data'=>$model,

	'attributes'=>array(

		'id',

		'title',

		array(

			'name'=>'content',

			'value'=>$model->content,

		),

		array(

			'name'=>'statusText',

			'value'=>$date->statusText,

			),

		array(

			'name'=>'createTime',

			'value'=>Yii::app()->DateFormatter->formatDateTime($model->createTime,"full","short"),

		),

		array(

			'name'=>'updateTime',

			'value'=>Yii::app()->DateFormatter->formatDateTime($model->updateTime,"full","short"),

		),

	),

)); ?>

content中含有html 元素,比如<br />或<ul><li>list 1</li><li>list 2</li></ul>

输出的html代码中中也是如此,并非htmlspecialchars编码过的;

但是浏览器并不渲染这些html代码,只是当作字符输出;不论是ie系列还是ff,chrome都是这样;当我用ff的firebug删除一个html元素旁边的空格的时候就正常显示;

我的开发环境是

os:ubuntu 9.10

editor: vim

set enc=utf-8

let &termencoding=&encoding

set fencs=utf-8,ucs-bom,cp936,gb18030,gbk,gb2312

apache2 -V

Server version: Apache/2.2.12 (Ubuntu)

php 5.2.10

mysql 5.1.37

db组建使用utf8编码;数据库字符集是utf8_general_ci;

我尝试过几个grid都是这样:


<?php $this->widget('zii.widgets.grid.CGridView', array(

	'dataProvider'=>$dataProvider,

	'columns'=>array(

		array(

			'name'=>'id',

			'value'=>'$data->id',

		),

		array(

			'name'=>'title',

			'value'=>'$data->title',

		),

		array(

			'name'=>'content',

			'value'=>'$data->content',

		),

		array(

			'name'=>'status',

			'value'=>'$data->statusText',

		),

		array(

			'name'=>'createTime',

			'value'=>'Yii::app()->dateFormatter->formatDateTime($data->createTime,"medium",null)',

		),

		array(

			'name'=>'updateTime',

			'value'=>'Yii::app()->dateFormatter->formatDateTime($data->updateTime,"medium",null)',

		),

		array(

			'class'=>'CButtonColumn',

			'header'=>Yii::t('ui','Actions'),

		),

	),

)); ?>

不需要的转义的

‘type’=>‘raw’,

果然如此,多谢了;我现在用了’html’

看来看yii的api文档不如直接看源代码阿;