Yii:zii.widgets.CDetailView - 在模型中或在窗口小部件的参数中声明attrs?

时间:2013-05-17 20:20:31

标签: yii

我有一个模型(我们称之为M)。这个模型与另一个模型(R)有一个关系(我们称之为X)。

默认情况下,Gii会生成显示R作为数字ID(数据库中的主键)的代码。我想把它显示为超链接。

我认为有两种方法可以使用zii.widgets.CDetailView:

  • $this->widget('zii.widgets.CDetailView');
  • 提供额外参数
  • 在我的模型类中定义方法getHyperlink(),并将该属性称为->hyperlink

这两种方式中的哪一种更好?

第一种方式可能需要重复的代码(例如在index.php中使用由Gii生成的zii.widgets.CListView)。

第二种方式要求attributeLabels()使用新属性hyperlink,该属性与其他(非超链接数字)属性具有相同的标题。所以我两次写同一个标题。

那么,这两种变体中的哪一种更好?

1 个答案:

答案 0 :(得分:0)

一般来说,我认为使用该模型的第二种方法会更好DRY

如果您决定要使用另一个视图中的超链接,则不必使用$this->widget('zii.widgets.CDetailView');

的额外参数重新定义逻辑