douyuan4697 2015-01-02 18:45
浏览 64
已采纳

条件Yii 2中的活动数据提供者

I'm trying to display database for each user in descending date order using data provider this works for Yii 1 at controller :

         $DataProvider = new CActiveDataProvider('ModelName', array(
                'criteria' => array(
                'condition' => 'user_id=' . Yii::app()->user->id,
                'order' => 'submitted_dt DESC',
            ),
            'pagination' => array(
                'pageSize' => 20,
            ),
        ));

i try this in Yii 2 :

     $DataProvider = new ActiveDataProvider([
                'query' => ModelName::find(),
              'criteria' => [
                'condition' => 'user_id=' . Yii::$app->user->identity->id,
                'order' => 'submitted_dt DESC',
                 ], 
            'pagination' => [
                'pageSize' => 20,
            ],
        ]);

        // get posts in the current page
        $Model= $DataProvider->getModels();

Error i get is unknown property: yii\data\ActiveDataProvider::criteria .So what is the way to set this condition and order ? All suggestions are welcomed

  • 写回答

1条回答 默认 最新

  • douchui3933 2015-01-02 21:11
    关注

    The Yii2's right way would be:

    $DataProvider = new ActiveDataProvider([
            'query' => ModelName::find()->
                where(['user_id'=>Yii::$app->user->identity->id])->
                orderBy('submitted_dt DESC'),
            'pagination' => [
                'pageSize' => 20,
            ],
        ]);
    
        // get posts in the current page
        $Model= $DataProvider->getModels();
    

    So, you don't need criteria in Yii2 as this is not exist anymore.

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

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度