モデルを使わないCDetailViewサンプル

zii.widgets.CDetailViewて何を出力するんだっけ。モデルを使わないサンプルコードを書いてみた。

サンプルコード

<?php
$model = (object) array(
    "title"=>"たいとる", 
    "owner" => (object) array(
        "id"=>"owner.id",
        "name"=>"オーナーの名前",
    ),
    "description"=>"<b>descriptiondescription</b>",
    "city"=> (object) array(
    "id"=>"city.id",
    "name"=>"city.name",
    ),
);

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        'title',             // title attribute (in plain text)
        'owner.name',        // an attribute of the related object "owner"
        'description:html',  // description attribute in HTML
        array(               // related city displayed as a link
            'label'=>'City',
            'type'=>'raw',
            'value'=>CHtml::link(CHtml::encode($model->city->name),
                                array('city/view','id'=>$model->city->id)),
        ),
    ),
));

結果

<table class="detail-view" id="yw1">
<tr class="odd"><th>Title</th><td>たいとる</td></tr>
<tr class="even"><th>Owner Name</th><td>オーナーの名前</td></tr>
<tr class="odd"><th>Description</th><td><b>descriptiondescription</b></td>tr>
<tr class="even"><th>City</th><td><a href="/test/index.php?r=city/view&amp;id=city.id">city.name</a></td></tr>
</table>

th, tdが tr になってる table なんだね。