繁体   English   中英

根据数据库值在yii cgridview中更改列名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM