CDetailView は、特定のモデルの詳細なコンテンツを表示します。表示されるモデルは CModel または連想配列です。
CDetailView は、属性を構成することによって、モデルのどの属性をどの形式で表示する必要があるかを決定します。
各属性は、Name:Type:Label を使用して設定できます。 Type と Label はどちらもオプションです。
"Name" 属性名。
"Label" オプション。属性のラベル名。設定されていない場合、属性名がラベル名として使用されます。
属性の "Type" タイプ。使用できるタイプは、raw、text、ntext、html、date、time、datetime、boolean、number、email、image、url などです。デフォルトは text です。
この例は次のとおりです。以前の Yii Framework 開発チュートリアル ( 30) Zii コンポーネント-ListView の例から変更して、表示リストのリスト項目テンプレート _view.php を変更して、顧客名が通常のテキストからリンクに変更されるようにします。
名 . ' ' . $data->LastName,
$this->createUrl('view',array('CustomerId'=>$data->CustomerId));?>
とき顧客の名前をクリックすると、リンク view.php に移動し、受信パラメータ CustomerId を顧客の ID に設定します。
View.php を作成し、CDetailView コンポーネントを使用します。
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 テーブルは外部キー参照 Employee として SupportRepId を定義するため、Customer クラス定義のリレーションを変更します。Yii Framework Development Tutorial (27) Database- を参照してください。関連するアクティブ レコードのサンプル
public function relations() { return array( 'employee'=>array(self::BELONGS_TO, 'Employee', 'SupportRepId'), ); }
は、次のように結果を表示します:
上記は、PHP 開発フレームワーク Yii Framework チュートリアル (31) Zii コンポーネント-DetailView のサンプルの内容です。 PHP 中国語 Web サイト (www.php.cn) に注意してください。