yii2:我的数据提供者不是真的

时间:2017-07-19 19:05:31

标签: yii2

我有数据提供者通过创建时间获得9个帖子,但我的订单和限制没有工作

$dataProviderlatenew=new ActiveDataProvider([
         'query'=>Post::find()->limit(9)->orderBy('create_time DESC'),
         'sort' => [
         'defaultOrder' => [
                 'create_time' => SORT_DESC,
             ],
          ],
         ]);

2 个答案:

答案 0 :(得分:1)

请记住,如果分页不是false,则会自动管理限制,而不是使用查询中的限制..所以对于订单

    $dataProviderlatenew=new ActiveDataProvider([
     'query'=>Post::find(),
     'pagination' =>['pagesize' =>9],
     'sort' => [
            'defaultOrder' => [ 'create_time' => SORT_DESC, ],
     ],
]);

否则设置aproper分页(所以你可以使用limit(9))并且不要在dataProvider中选择和默认顺序强加订单(是无意义的)

例如:

    $dataProviderlatenew=new ActiveDataProvider([
     'query'=>Post::find()->limit(9),
     'pagination' =>false,
     'sort' => [
            'defaultOrder' => [ 'create_time' => SORT_DESC, ],
     ],
]);

{{1}}

答案 1 :(得分:1)

试试这个:

$dataProviderlatenew=new ActiveDataProvider([
 'query'=>Post::find(),
 'pagination'=>['pagesize'=>9],
 'sort' => [
      'defaultOrder' => [ 'create_time' => SORT_DESC],
    ],
 ]);

参考:http://www.yiiframework.com/doc-2.0/guide-output-data-providers.html