簡體   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