CDetailView


CDetailView是显示一项数据的详细内容

CDetailView的使用我只做简单应用,认识也有限。

data是数据,单条数据;

attributes里也可以是字符串和数组,

字符串:

一个属性可以被指定为一个字符串,使用格式:"Name:Type:Label". "Type" 和 "Label" 是可选的.

"Name"引用属性名.它可以是一个属性 (例如 "title")或一个子属性(例如 "owner.username").其中:html表示用解析为html,即<br />会变成换行而不是直接输出;

"Label" 代表属性的标签.如果没有给定,"Name"将被用作产生一个适当的标签.

"Type" 代表属性的类型.它确定属性值怎样被格式化和显示. 它默认为'text'. "Type"应该formatter被识别.特别是, 如果"Type" 是 "xyz",那么formatter的"formatXyz" 方法将被触发格式化要显示的属性值.默认当CFormatter被使用的时候, 这些"Type"值是有效的: raw, text, ntext, html, date, time, datetime, boolean, number, email, image, url. 关于这些类型的更多细节, 请参考CFormatter.

数组:

一个属性在相应的数组中指定,它有如下元素:

label: 相应于属性的标签.如果这个没有指定,下面的"name"元素 将被用来产生一个适当的标签.

name: 属性名称. 这个可以是一个属性 or模型的一个子属性. 如果下面的"value"元素被指定,这将被忽略.

value: 要显示的值.这个没有指定,上面的"name"元素将被用来 element will be used 返回相应的属性值.注意,这个值将按照 下面描述的"type"选项进行格式化.

type: 属性的类型决定属性值怎样被格式化. 请看看上面可能的值.

cssClass: CSS class将被用于这个item.这个选项可用自1.1.3.

template: template用于渲染这个属性.如果这个没有指定, itemTemplate 将会替代它.更多设置这个选项的细节请参考itemTemplate. 这个选项可用自1.1.1.

visible: 是否这个属性是可见的.如果设置为false,为显示属性的表格行将不会被渲染. 这个选项可用自1.1.5.

注意:value的值跟上面CGridView中的value有所不同,它可以直接执行函数,不需要用''。

更多功能请看zii.widgets.CDetailView参考手册

下面是示例:

2015-11-15_162819.gif

<?php
$this->widget ( 'zii.widgets.CDetailView', array (
		'data' => $model,
		'htmlOptions' => array (
				'id' => 'view_table',
				'class' => 'table table-striped table-bordered table-hover table-w-20' 
		),
		'attributes' => array (
				'id',
				'name',
				'img',
				'url',
				array (
						'name' => '幻灯片',
						'value' => CHtml::image ( $model->img, '大图', array (
								'width' => '200px'
						) ),
						'type' => 'raw'
				)
		)
) );
?>