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