yii2:我的数据提供者排序不对真



我有数据提供者按创建时间获取 9 个帖子订单,但我的订单和限制不起作用

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

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

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

否则设置适当的分页(这样你就可以使用limit(9((,并且不要在选择中强加顺序,在dataProvider中强加默认顺序(这是无意义的(

例如:

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

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

试试这个:

$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

最新更新