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
Дмитрий
20 октября 2017, 09:51
334
0

Комментарии: 4

Евгений Webinmd
20 октября 2017, 13:16
0
из документации
{"tvname":"ASC", "pagetitle":"DESC"}
ну и у вас в примере кавычки у параметра name пропущены
    Дмитрий
    20 октября 2017, 13:23
    0
    я использую fenom
    {$_modx->runSnippet('pdoPage', [
        'class' => 'myClass',
        'tpl' => 'myTpl',
        'where' => ['parentId' => $id],
        'sortby' => ['number' => 'ASC', 'name' => 'ASC'],
        'limit' => 200
    ])}
    Просто судя по ошибкам в логах в параметре 'sortby' никак не ожидается массив — только строка. Но документация говорит что можно передавать массив.
      Евгений Webinmd
      20 октября 2017, 13:26
      +1
      {$_modx->runSnippet('pdoPage', [
          'class' => 'myClass',
          'tpl' => 'myTpl',
          'where' => ['parentId' => $id],
          'sortby' => '{ "number" : "ASC", "name" : "ASC" }',
          'limit' => 200
      ])}
      в документации написано:
      Можно указывать JSON строку с массивом нескольких полей
        Дмитрий
        20 октября 2017, 13:35
        0
        Спасибо за подсказку. так сработало. Действительно строку хотел.