> PHP 프레임워크 > YII > yii2.0 테이블을 정렬하는 방법

yii2.0 테이블을 정렬하는 방법

풀어 주다: 2019-12-09 13:37:13
원래의
2383명이 탐색했습니다.

yii2.0 테이블을 정렬하는 방법

Yii2.0 프로젝트를 실제로 개발하다 보면 Yii2.0에 포함된 정렬 기능을 사용하는 경우를 자주 접하게 됩니다.

여러 데이터를 표시할 때 일반적으로 사용자가 지정한 열에 따라 데이터를 정렬해야 합니다. Yii는 yiidataSort 개체를 사용하여 정렬 체계에 대한 정보를 나타냅니다. 특히:

1. 속성은 데이터가 정렬되는 속성을 지정합니다. 속성은 단순 모델 속성일 수도 있고, 여러 모델 속성이나 DB 열을 결합하는 복합 속성일 수도 있습니다. 자세한 내용은 아래에 설명되어 있습니다.

2. attributeOrders는 각 속성에 현재 설정된 정렬 방향을 제공합니다.

3. 순서는 하위 열 형태로 정렬 방향을 제공합니다.

yiidataSort를 사용하려면 먼저 어떤 속성을 정렬할 수 있는지 선언해야 합니다. 그런 다음 attributeOrders 또는 Orders에서 현재 설정된 정렬 정보를 가져온 다음 이를 사용하여 데이터 쿼리를 사용자 정의합니다.

(추천 학습: yii 프레임워크)

정렬 기능을 사용하는 구체적인 방법은 다음과 같습니다.

1. 정렬 규칙을 설정합니다.

다음과 같은 Sort 클래스 도입에 주의하세요. yiidataSort 사용 ;

// 设置排序字段
        $sortObject = new Sort([
                'sort' => $sort,
                'defaultOrder' => ['id' => SORT_DESC],
                'attributes' => [
                        'id' => [
                                'asc' => ['id' => SORT_ASC],
                                'desc' => ['id' => SORT_DESC],
                        ],
                        'user_name' => [
                                'asc' => ['ecs_users.user_name' => SORT_ASC],
                                'desc' => ['ecs_users.user_name' => SORT_DESC],
                        ],
                        'add_time' => [
                                'asc' => ['add_time' => SORT_ASC],
                                'desc' => ['add_time' => SORT_DESC],
                        ],
                ],
        ]);
로그인 후 복사

2. Yii2.0 사용 페이징 기능 포함 및 정렬 추가

// 处理分页
        $queryClone = clone $query;
        $totalCount = $queryClone->count();
        $pages = new Pagination(['defaultPageSize'=>$rows,'totalCount'=>$totalCount,'pageSizeLimit'=>false]);
        $query = $query->offset($offset)
                       ->limit($pages->limit)
                       ->orderBy($sortObject->orders)
                       ->asArray()
                       ->all();
로그인 후 복사

3. Yii2.0 정렬의 기본 코드 수정

기본 해당 소스 코드: Vendor/yiisoft/yii2.0/data/Sort .php

1. Sort 클래스에 속성을 추가합니다: public $sort;

2. 소스 코드의 약 249번째 줄에 다음 코드를 추가합니다. (페이징 매개변수를 얻기 위해 post 구현)

  // get请求获取数组为空,则调用自定义属性sort。用于满足post获取后处理自定义参数
 if(!isset($params[$this->sortParam])){
    $params[$this->sortParam] = $this->sort;
  }
로그인 후 복사

3.

$sort = $_POST['sort'] ? strval($_POST['sort']) : 'id';
$sort = $_POST['order'] == 'asc' ? $sort : '-'.$sort;
로그인 후 복사

참고: Yii2.0의 id는 양의 순서로 ID 기준 정렬을 나타내고, -id는 ID를 역순으로 정렬한다는 의미입니다. 이는 위의 문 2가 이런 방식으로 처리되는 이유이기도 합니다.

위 내용은 yii2.0 테이블을 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿