Yii2并在ArrayDataProvider中排序

Fua*_*mov 1 php yii yii2

我正在使用ArrayDataProvider,我想知道如何在视图中进行排序链接,如 $sort->link('date') inyii/data/Sort

len*_*sda 8

请遵循此(yii\data\sort)此(yii\data\ArrayDataProvider)文档

你能做的就是这样排序:

$sort = new Sort([
    'attributes' => [
        'age',
        'name' => [
            'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
            'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
            'default' => SORT_DESC,
            'label' => 'Name',
        ],
        // or any other attribute
    ],
]);
Run Code Online (Sandbox Code Playgroud)

之后,您可以将它放在您的阵列数据提供程序中

$query = new Query;
$provider = new ArrayDataProvider([
    'allModels' => $query->from('post')->all(),
    'sort' => $sort, // HERE is your $sort
    'pagination' => [
        'pageSize' => 10,
    ],
]);
// get the posts in the current page
$posts = $provider->getModels();
Run Code Online (Sandbox Code Playgroud)

最后在你看来:

// any attribute you defined in your sort defination
echo $sort->link('name') . ' | ' . $sort->link('age');
Run Code Online (Sandbox Code Playgroud)