LoginSignup
2
2

More than 5 years have passed since last update.

CGridViewのセルに出す値はクロージャで書くほうがいい

Last updated at Posted at 2013-10-08

Yii で便利な CGridView ですが、テーブルセルに任意のデータを出すコードとして、マニュアルのサンプル上はこんなふうに書いてあります。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'name'=>'create_time',
            'value'=>'date("M j, Y", $data->create_time)',
        ),
    ),
));

evalできる文字列って、これちょっとカッコ悪いですよね。

これ実は、最近のバージョンだけかもしれないけど、次のように書けるようになっています。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        array(
            'name'=>'create_time',
            'value'=> function($data) {
                return date("M j, Y", $data->create_time);
            },
        ),
    ),
));

普通もう5.3未満なんてありえないので、クロージャでいいんじゃないですかね。PHPの文法として事前に評価されるし、エディタのハイライトも効くし、たぶん use で別の変数も束縛できるし。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2