Fix #7622: Allow yii\data\ArrayDataProvider to control the sort flags for sortModels through yii\data\Sort::sortFlags property

This commit is contained in:
Arthur Skobara
2020-02-04 15:56:35 +07:00
committed by GitHub
parent 15d425a3e3
commit a19dd48b79
4 changed files with 34 additions and 1 deletions

View File

@@ -184,4 +184,30 @@ class ArrayDataProviderTest extends TestCase
$dataProvider = new ArrayDataProvider(['allModels' => $mixedArray, 'pagination' => $pagination]);
$this->assertEquals(['key1', 9], $dataProvider->getKeys());
}
public function testSortFlags()
{
$simpleArray = [['sortField' => 1], ['sortField' => 2], ['sortField' => 11]];
$dataProvider = new ArrayDataProvider(
[
'allModels' => $simpleArray,
'sort' => [
'sortFlags' => SORT_STRING,
'attributes' => [
'sort' => [
'asc' => ['sortField' => SORT_ASC],
'desc' => ['sortField' => SORT_DESC],
'label' => 'Sorting',
'default' => 'asc',
],
],
'defaultOrder' => [
'sort' => SORT_ASC,
],
],
]
);
$sortedArray = [['sortField' => 1], ['sortField' => 11], ['sortField' => 2]];
$this->assertEquals($sortedArray, $dataProvider->getModels());
}
}