如何在yii2中更新其模型后对DataProvider进行排序?

时间:2017-08-01 11:50:07

标签: sorting yii2 dataprovider

我从数据库中获得了一些数据。

$searchModel = new InventorySearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

使用复杂算法计算每种产品的收入和成本。之后,使用以下新成本和收入更新$ dataProvider:

Gridview

foreach ($dataProvider->models as $model) {

        $model->cost = 0;
        $model->revenue = 0;
        $model->profit = 0;
        $model->profit_margin = 0;

        foreach($calculated_costs as $item)
        {
            if($model->id == $item['product_id'])
            {
                $model->cost  = $item['total_cost'];
                break;
            }
        }

        foreach($calculated_revenue as $rev_item)
        {
            if($model->id == $rev_item['product_id'])
            {
                $model->revenue  = $rev_item['total_sales'];
                break;
            }
        }

        $model->profit = floatval($model->revenue)  - floatval($model->cost) ;
        if($model->revenue != 0)
        {
            $model->profit_margin = ( floatval($model->profit) ) /  floatval($model->revenue) ;
        }

    }

我需要在更新dataprovider后按利润对数据提供者进行排序。有没有办法做到这一点?

0 个答案:

没有答案