Bandicoot
@Bandicoot
Вась-программист

Можно ли в ActiveDataProvider настроить сортировку по длине строки определенного поля?

Юзаю GridView совместно с ActiveDataProvider. Нужно при выводе таблицы настроить сортировку: по длине строк значений определенного поля.
$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort' => [
                'defaultOrder' => [
                    'name' => ???
                ]
            ]
        ]);

Т.е. значения например с '11' должны выводиться перед '111', т.к. длина строки тут короче. Надеюсь, понятно объяснил)
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
приблизительно так
$dataProvider->sort->attributes['name'] = [
    'asc' => [
        'LENGTH(name)' => SORT_ASC
    ],
    'desc' => [
        'LENGTH(name)' => SORT_DESC
    ],
];


P.S. код написан на коленке, но копайте в эту сторону
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы