3

でモデル関数を使用しようとしていますが、機能GetStatusNameTbDetailViewていません。で適切に動作していますTbGridView

モデル機能:

public function getStatusName()
{
    switch($this->status)
    {
        case self::STATUS_ACTIVE:
            return 'Active';
            break;
        case self::STATUS_DELETED:
            return 'Deleted';
            break;
        default:
            return 'Unknown';
            break;
    }
}

コード:

<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
    'type'=>'bordered condensed',
    'data'=>$model,
    'attributes'=>array(
        'name',
        array('name' => 'status', 'type' => 'text', 'value' => '$data->statusName'),
    ),
));
?>

意見:

Name    John
Gender  $data->statusName
4

3 に答える 3

4

ではCDetailViewvalue引用符なしで直接指定する必要があります。値は のように評価されないCGridViewため、次を使用します。

array('name' => 'status', 'type' => 'text', 'value' => $model->statusName)
于 2013-01-23T12:11:07.837 に答える
2
<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
   'type'=>'bordered condensed',
   'data'=>$model,
   'attributes'=>array(
       'name',
       array('name' => 'status', 'type' => 'text', 'value' => $data->statusName),
   ),
));
?>

また:

<?php
$this->widget('bootstrap.widgets.TbDetailView',array(
   'type'=>'bordered condensed',
   'data'=>$model,
   'attributes'=>array(
       'name',
       array('name' => 'status', 'type' => 'text', 'value' => getStatusName($data->getStatusName)),
   ),
));
?>

コメント後に編集。

于 2013-01-23T11:45:58.230 に答える
2

ここに小さな例があります。フォーマット値を操作する方法を今すぐ見つけました:

    <?php $this -> widget('bootstrap.widgets.TbDetailView', array(
            'data' => $user,
            'type' => 'bordered striped condensed',
            'attributes' => array(
                    'name',
                    array(
                            'name' => 'birthDate',
                            'value' => Yii::app()->dateFormatter->format("dd.MM.yy", strtotime('$data->birthDate')),
                    ),
                    'code',
            ),
    ));
    ?>
于 2013-02-05T11:48:00.813 に答える