在CDetailView小部件中放入另一个小部件

时间:2011-12-01 10:20:01

标签: php yii

我想在CDetailView小部件的一行中放入一个从另一个小部件显示的文本。我如何将这两者联系起来?

$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
    array( 
                'label'=>'TextHighlighter',
                'type'=>'raw',
                'value'=>'this system.web.widgets.CTextHighlighter widget',
         ),
), ));

1 个答案:

答案 0 :(得分:1)

扩展CFormatter,创建一个自定义类,调用CTextHighlighter小部件并返回渲染值。

比将格式化程序传递给DetailView

$myCustomformat=new myFormat();
$this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'formatter'=>$myCustomformat,
'attributes'=>array(
    array( 
                'label'=>'Label',
                'type'=>'texthighligter',
                'value'=>'$model->data',
         ),
), ));

这将调用myFormat类中的formatTexthighligter()方法,该方法返回CTextHighlighter输出。

或者在这里阅读其他一些方法http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/