[英]Changing column name in yii cgridview based on database value
我陷入了必须根据数据库值更改列标题的情况。 例如,如果数据库值为1,则列名应为“ Kick Off”;如果数据库值为2,则列名应为“ Tip Off”。 我使用了以下代码,但无法正常工作。
array(
'name' => 'date',
'header' => '($data->league_id==1) ? "Kick Off" : "Tip Off"',
'type' => 'raw',
'value' => 'strtoupper(date("D M d", strtotime($data->date)))',
),
如果看到CDataColumn
(如果使用数组指定属性, CDataColumn
默认值),则标头值为字符串,并且不会作为PHP表达式求值。
如果看一下CDataColumn的renderHeaderCellContent()
方法,您会注意到它使用了模型中的属性名称。
$this->grid->dataProvider->model->getAttributeLabel($this->name)
因此,我认为将其放置在模型中没有任何问题,因为模型应该首先放置在模型中:
public function attributeLabels() {
return array(
'date' => '($this->league_id == 1) ? "Kick Off" : "Tip Off"',
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.