pdoTools сортировка по нескольким условиям
Формирую запрос pdoPage с параметром
'sortby' => ['number' => 'ASC', name => 'ASC']
сортировка не осуществляется. В логах ошибки:
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 427) PHP warning: strtolower() expects parameter 1 to be string, array given
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 427) PHP warning: strtolower() expects parameter 1 to be string, array given
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 444) PHP warning: Illegal offset type
Если делать сортировку вида
'sortby' => 'number',
'sortdir' => 'ASC',
в таком варианте всё нормально.
Подскажите где ошибка? pdoTools 2.9.3-pl
'sortby' => ['number' => 'ASC', name => 'ASC']
сортировка не осуществляется. В логах ошибки:
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 427) PHP warning: strtolower() expects parameter 1 to be string, array given
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 427) PHP warning: strtolower() expects parameter 1 to be string, array given
(ERROR @ /var/www/mysite/data/core/components/pdotools/model/pdotools/pdofetch.class.php: 444) PHP warning: Illegal offset type
Если делать сортировку вида
'sortby' => 'number',
'sortdir' => 'ASC',
в таком варианте всё нормально.
Подскажите где ошибка? pdoTools 2.9.3-pl
Комментарии: 4
из документации
{"tvname":"ASC", "pagetitle":"DESC"}
ну и у вас в примере кавычки у параметра name пропущены
я использую fenom
{$_modx->runSnippet('pdoPage', [
'class' => 'myClass',
'tpl' => 'myTpl',
'where' => ['parentId' => $id],
'sortby' => ['number' => 'ASC', 'name' => 'ASC'],
'limit' => 200
])}
Просто судя по ошибкам в логах в параметре 'sortby' никак не ожидается массив — только строка. Но документация говорит что можно передавать массив. {$_modx->runSnippet('pdoPage', [
'class' => 'myClass',
'tpl' => 'myTpl',
'where' => ['parentId' => $id],
'sortby' => '{ "number" : "ASC", "name" : "ASC" }',
'limit' => 200
])}
в документации написано:Можно указывать JSON строку с массивом нескольких полей
Спасибо за подсказку. так сработало. Действительно строку хотел.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.