dsgw8802 2019-05-02 07:41
浏览 298
已采纳

在Yii中进行gridview查询后操作数据

I have a Gridview with data from a table which normally is ok as it is. But in some cases i have to manipulate the data, and i can't just do it from the query as there are many different cases and requires complex calculations.

Example: base data loaded from db:

date        price   buy_price
2019-05-01  15.75   10
2019-05-02  20.15   10.50

same data which passed through complex calculations

date        price   buy_price
2019-05-01  3.75   3
2019-05-02  4.70   3.10

I would like to use GridView cause the ajax filtering and sorting are really useful.

How can i manipulate the data AFTER the query the Gridview executes based on the DataProvider?

  • 写回答

1条回答 默认 最新

  • doucheng7808 2019-05-02 09:23
    关注

    As an example in Yii2 Documentation about GridvViews says, you can manipulate any column to your need in the following way:

    echo GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        // Simple columns defined by the data contained in $dataProvider.
        'data',
        [
            'attribute' => 'price',
            'value' => function ($model) {
                return $model->getValue();  // Here you can manipulate the data as you wish.
            },
        ],
        [
            'attribute' => 'buy_price',
            'value' => function ($model) {
                return $model->buy_price * 2;  //Here you can manipulate the data as you wish.
            },
        ],
    ],]); 
    

    After manipulating data, you can still use the sort or the ajax filtering.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角