在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)的属性,所以我在这里走错了路。处理这个问题的正确方法是什么?
答案 0 :(得分:6)
$this->widget('CDetailView', array(
'data'=>$model,
'attributes'=>array(
'title',
'author',
array(
'name'=>'Category',
'type'=>'raw',
'value'=>CHtml::link('Link Title', 'url'),
),
...
答案 1 :(得分:1)
您正在混淆 CDetailView 和 CGridView 。
urlExpression 是 CLinkColumn 属性,CLinkColumns用于CGridViews的columns属性。
CDetailView只有属性属性。
我猜您可以在值属性中生成您的网址,并使用 type = raw 来显示它