2013-09-04 3 views
0

В CDetailView, как мне связать значение значения с другой страницей? Скажем, у меня есть книга, которая является членом книжной категории, например. Научная фантастика. На странице книги подробно отображаются следующие данные:YII - CDetailView: ссылка на другую страницу

Book title: Dune 
Author: Frank Herbert 
Category: Science Fiction --> link 

Научная фантастика должна быть ссылка на /category/view, как показано в следующем коде, который не работает для меня:

 
array(
    'label' => 'Category', 
    'value' => $model->category->name, 
    'urlExpression'=>'Yii::app()->createUrl("category/view", 
     array("cid"=>$data->category_id))', 
    'class'=>'CLinkColumn', 
), 

Я получаю создается впечатление, что urlExpression не работает с CDetailView. Это свойство класса CLinkColumn (»CGridColumn» CComponent), поэтому я нахожусь на неправильном пути здесь. Каков правильный способ справиться с этим?

+2

http://www.yiiframework.com/doc/api/1.1/CDetailView –

+0

где вы получили urlExpression? –

+0

Я думаю, что вы должны быть в списке, и этот список должен содержать ссылку на подробный список –

ответ

6
$this->widget('CDetailView', array(
'data'=>$model, 
'attributes'=>array(
    'title', 
    'author', 
    array(
     'name'=>'Category', 
     'type'=>'raw', 
     'value'=>CHtml::link('Link Title', 'url'), 
    ), 
    ... 
+0

Спасибо! Это то, что я ищу. – SPRBRN

+0

Для 'Link Title' вы можете использовать '$ model-> category-> name', а для 'url' вы можете использовать' array ('category/view', 'id' => $ model-> category_id) '. – SPRBRN

1

Вы ошибались CDetailView и CGridView.

urlExpression является CLinkColumn атрибут, и CLinkColumns используются в приписывать столбцы CGridViews в.

CDetailView только имеет атрибуты атрибут.

Я думаю, вы можете создать свой адрес в значение атрибутаи использовать тип = сырье для его отображения

+0

Спасибо. Я ищу способ заставить его работать, следуя правильному пути. Я использую CDetailView из-за учебника, а не по какой-либо особой причине. Поэтому я мог бы использовать CGridView, если это решит проблему. Использование исходной опции, вероятно, не является предпочтительным способом. Это учебный проект для меня, поэтому я предпочитаю его правильно изучить. – SPRBRN

+0

@rxt, в этом случае использование исходного значения вполне приемлемо. – ethan

Смежные вопросы