Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在yii2控制器中添加多级排序作为默认排序_Php_Sorting_Yii2 - Fatal编程技术网

Php 如何在yii2控制器中添加多级排序作为默认排序

Php 如何在yii2控制器中添加多级排序作为默认排序,php,sorting,yii2,Php,Sorting,Yii2,我想对3个级别或广告进行排序。第一个级别是premium status=2,然后是featuredstatus=1,regularstatus=0。在列表视图中,我需要先显示premium广告,并使用排序数据desc。表示premium广告中的最新帖子。然后我想先显示特色广告,如最新帖子,然后再显示常规广告,如最新帖子。 我有一个默认的排序,比如 $dataProvider = $searchModel->search($params); $defaultSort = $dataProvi

我想对3个级别或广告进行排序。第一个级别是premium status=2,然后是featuredstatus=1,regularstatus=0。在列表视图中,我需要先显示premium广告,并使用排序数据desc。表示premium广告中的最新帖子。然后我想先显示特色广告,如最新帖子,然后再显示常规广告,如最新帖子。 我有一个默认的排序,比如

$dataProvider = $searchModel->search($params);
$defaultSort = $dataProvider->getSort();
$defaultSort->defaultOrder = ['date'=>SORT_DESC];
这段代码将按照日期排序顺序对整个列表进行排序。不过滤高级、特色和常规。因此我将其改为

$defaultSort->defaultOrder = ['status' => SORT_DESC,'date'=>SORT_DESC];
但是什么也没发生。我该如何在yii2中进行3级排序

$dataProvider = $searchModel->search($params);
$dataProvider->sort->defaultOrder =  ['status' => SORT_DESC,'date'=>SORT_DESC];

@事实上你错了。getSort返回Sort实例,对该对象的任何更改都将影响引用该实例的每个位置,包括BaseDataProvider::$\u Sort-这就是对象在PHP中的工作方式。我很惊讶这个答案被接受,因为您的示例在逻辑上与问题中的代码示例相同。