CDetailView 為某個 Model 顯示詳細(xì)內(nèi)容。這個要顯示的 Model 可以為 CModel 或是關(guān)聯(lián)數(shù)組。
CDetailView 通過配置 attributes 來決定 Model 的那些屬性需要顯示已經(jīng)以何種格式顯示。
每個屬性可以使用 Name:Type:Label 來配置。其中 Type 和 Label 都是可選的。
本例修改上例 Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例 ,修改顯示列表的列表項模版_view.php ,使客戶名稱由普通文字變?yōu)?Link。
<h3><?php echo CHtml::link($data->FirstName . ' ' . $data->LastName,
$this->createUrl('view',array('CustomerId'=>$data->CustomerId)));?></h3>
當(dāng)點擊客戶姓名時,轉(zhuǎn)到鏈接 view.php, 傳入?yún)?shù) CustomerId 設(shè)為 Customer 的 ID。
創(chuàng)建 View.php,使用 CDetailView 組件
<h2><?php echo 'View Customer'; ?></h2>
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'FirstName',
'LastName',
'Company',
'Address',
'City',
'State',
'Country',
'PostalCode',
'Phone',
'Fax',
'Email',
array(
'name'=>'Employee',
'value'=>$model->employee->FirstName,
),
),
));
?>
使用缺省的格式顯示 Customer 的每個字段,主要的 Employee 字段,表 Customer 定義的是 SupportRepId 做為外鍵參考 Employee,因此修改類 Customer 定義 Relations,參考 Yii Framework 開發(fā)教程(27) 數(shù)據(jù)庫-關(guān)聯(lián) Active Record 示例
public function relations()
{
return array(
'employee'=>array(self::BELONGS_TO,
'Employee', 'SupportRepId'),
);
}
顯示結(jié)果如下:
http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/31.1.jpg" alt="picture31.1" />
本例下載