我陷入了必须根据数据库值更改列标题的情况。例如,如果数据库值为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)))',
),
答案 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"',
...