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.

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

报告相同问题?

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来