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

时间:2014-07-22 05:45:41

标签: php yii cgridview

我陷入了必须根据数据库值更改列标题的情况。例如,如果数据库值为1,则列名称应为“开始关闭”,如果其名称为2,则列名称应为“提示关闭”。我使用了以下代码,但它不起作用。

array(
    'name' => 'date', 
    'header' => '($data->league_id==1) ? "Kick Off" : "Tip Off"',
    'type' => 'raw',
    'value' => 'strtoupper(date("D M d", strtotime($data->date)))',
),

1 个答案:

答案 0 :(得分:1)

如果看到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"',
        ...