Sort.php 1.05 KB
<?php

namespace app\ht\helpers;

use yii\data\Sort as BaseSort;

/**
 * 重写排序类
 * Class Sort
 * @package app\ht\helpers
 */
class Sort extends BaseSort
{
    /**
     * @param $model
     * @param array $extraAttrbutes
     * @param $default 默认排序: 从大到小
     */
    public function setAttributes($model, $extraAttrbutes = [], $default = SORT_DESC)
    {
        foreach ($model->attributes() as $attribute) {
            $this->attributes[$attribute] = [
                'asc' => [$attribute => SORT_ASC],
                'desc' => [$attribute => SORT_DESC],
                'label' => $model->getAttributeLabel($attribute),
                'default' => $default,
            ];
        }

        if ($extraAttrbutes) {
            foreach ($extraAttrbutes as $k => $label) {
                $this->attributes[$k] = [
                    'asc' => [$k => SORT_ASC],
                    'desc' => [$k => SORT_DESC],
                    'label' => $label,
                    'default' => $default,
                ];
            }
        }
    }
}