dongmaoxi0477 2018-06-11 12:45
浏览 127
已采纳

Yii2 GridView属性格式由不同的属性值定义

I would like to define the format of an attribute in GridView based on a db field value. I was trying for example like this:

'format' => function ($model) {return $model->format;}, // it should return 'boolean'

but I have tried many other ways also, but it's not working. I'm getting:

PHP Notice – yii\base\ErrorException

Trying to get property of non-object

If I'm simply returning format as an attribute, it's working without any issues. It seems that it's not accepting it in the format section. Is it possible anyways what I'm trying to achieve? Can you please point me to the right direction?

  • 写回答

2条回答 默认 最新

  • dongyang0005 2018-06-11 13:02
    关注

    Closures for format are not supported. You may use raw format and do formatting in Closure for value:

    [
        'attribute' => 'name',
        'type' => 'raw',
        'value' => function ($model) {
            $format = 'as' . ucfirst($model->format);
            return Yii::$app->formatter->$format($model->name);
        },
    ],
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 matlab可以把多个二维图合成为三维瀑布图吗
  • ¥15 EEPROM,软件i2c
  • ¥500 求解读该段JS代码,需要知道是用干什么的
  • ¥20 qt4代码实现二进制文件读取显示,以及显示的内容进行搜索
  • ¥15 Labview获取LK-G3001数据
  • ¥15 我知道什么是混合树,但是怎么写代码啊
  • ¥50 开发板linux系统安装dpkg,apt函数库 有偿
  • ¥15 浏览器时间循环 交互事件和延时事件的 优先级与执行问题
  • ¥15 GD模块安装出错,libgd无法正常安装
  • ¥20 求有缘人帮我把笛卡尔坐标系转换为经纬度 有偿