forked from yiisoft/yii2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request yiisoft#7011 from Ximich/patch-3
[skip ci] Create russian translation of output-sorting.md
Showing
1 changed file
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
Сортировка | ||
======= | ||
|
||
Иногда выводимые данные требуется отсортировать в соответствии с одним или несколькими атрибутами. | ||
Если вы используете [источник данных](output-data-providers.md) с одним из [виджетов данных](output-data-widgets.md), | ||
сортировка будет применена автоматически. В противном случае вам должны создать экземпляр [[yii\data\Sort]], | ||
настроить его и применить к запросу. Он также может быть передан в представление, где будет использован | ||
для создания ссылок на сортировку по определенным атрибутам. | ||
|
||
Ниже приведен типичный пример использование сортировки, | ||
|
||
```php | ||
function actionIndex() | ||
{ | ||
$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', | ||
], | ||
], | ||
]); | ||
|
||
$models = Article::find() | ||
->where(['status' => 1]) | ||
->orderBy($sort->orders) | ||
->all(); | ||
|
||
return $this->render('index', [ | ||
'models' => $models, | ||
'sort' => $sort, | ||
]); | ||
} | ||
``` | ||
|
||
В представлении: | ||
|
||
```php | ||
// Отображение ссылок на различные действия сортировок | ||
echo $sort->link('name') . ' | ' . $sort->link('age'); | ||
|
||
foreach ($models as $model) { | ||
// здесь отображаем модель $model | ||
} | ||
``` | ||
|
||
В примере выше, мы объявляем два атрибута, которые поддерживают сортировку: `name` and `age`. | ||
Мы передаем информацию о сортировке в запрос статьи, поэтому результаты запроса будут отсортированы | ||
согласно сортировке, установленной в объекте Sort. В представлении, мы отображаем две ссылки, | ||
которые ведут на страницы с данными, отсортированными по соответствующим аттрибутам. | ||
|
||
Класс [[yii\data\Sort|Sort]] будет автоматически принимать параметры, переданные с запросом | ||
и в соответствии с ними настраивать параметры сортировки. Вы можете регулировать список принимаемых | ||
параметров через настройку свойства [[yii\data\Sort::$params|$params]]. |