更改gridview colums中的值yii2

时间:2016-12-28 09:34:32

标签: yii2

我认为这是

'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    [
        'attribute' => 'order_delivery_address_city',
        'value' => 'address.order_delivery_address_city'
    ],

显示“1”或“2”或“3”等字段...如何将其更改为

if (address.order_delivery_address_city == '1') {
    'value' => 'New-York'
}

3 个答案:

答案 0 :(得分:2)

尝试:

    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'attribute' => 'order_delivery_address_city',
            'value' => function($model){
                         if($model->address->order_delivery_address_city == '1'){
                            return 'New-York';
                         }
                       }
        ],

答案 1 :(得分:2)

试试这个:

             [
                'attribute'=>'order_delivery_address_city',
                'value'=>function($model){
                  return $model->order_delivery_address_city=='1' ? 'New-York':'Anything else';
                }
            ],

答案 2 :(得分:1)

它会正常工作。试试这种方式。



'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'attribute' => 'order_delivery_address_city',
            'value' => function($model){
                $city_name = City::find()->select(['city_name'])->where(['city_id' => $model->order_delivery_address_city])->one();
                return $city_name ? $city_name->city_name:'None';
            },
        ],




它会查看城市表,并搜索单个记录以匹配 order_delivery_address_city 中包含的 city_id ,并返回相应的 city_name 即可。如果找不到匹配的记录,则返回