pdoTools сортировка по нескольким условиям Новый

Дополнение: 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, 12:51    Дмитрий   
0    74 0

Комментарии (4)

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