我有数据提供者按创建时间获取 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