Поместите в виджет CDetailView другой виджет - PullRequest
1 голос
/ 01 декабря 2011

Я хочу поместить в строку виджета CDetailView текст, отображаемый из другого виджета. Как я могу связать эти два?

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

1 Ответ

1 голос
/ 01 декабря 2011

Расширьте 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',
         ),
), ));

Это вызвало бы метод formatTexthighligter () из вашего класса myFormat, который возвращает вывод CTextHighlighter.

Или прочитайте другие способы здесь http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...