Как отсортировать коллекцию?

Приветствую, видимо я где то сильно туплю… но у меня не сортируются поля
$res = $pdo->getCollection('docsContract', array(), array(
    'select' => array(
        'docsContract' => '*',
    ),
    'sortby' => array(
        'id' => 'DESC',
    ),
));
в логе SQL prepared нету пункта ORDER BY…
Подскажите плиз что я не так сделал то?
Павел Сидоров
29 апреля 2015, 09:04
modx.pro
1
1 211
0

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

Алексей Ерохин
29 апреля 2015, 12:38
+1
А sortby принимает массив?
Хотя я таким стилем записи не пользовался никогда.
    Павел Сидоров
    29 апреля 2015, 12:43
    0
    bezumkin.ru/training/course2/3006/ — взял от сюда:
    $files = $pdo->getCollection('TicketFile', array(), array(
    	'innerJoin' => array(
    		'Ticket' => array(
    			'class' => 'Ticket',
    			'on' => 'Ticket.id = TicketFile.parent'
    		)
    	),
    	'select' => array(
    		'TicketFile' => '*',
    		'Ticket' => 'pagetitle'
    	),
    	'sortby' => array(
    		'TicketFile.id' => 'ASC'
    	)
    ));
    echo '<pre>';
    print_r($modx->getPlaceholder('pdoTools.log'));
    print_r($files);
    Если убираю
    'sortby' => array(
            'id' => 'DESC',
        ),
    то в логе появляется Sorted by docsContract.id, ASC,
    т.е. сортирует по умолчанию
    также в строке запроса появляется: ORDER BY docsContract.id ASC
      Павел Сидоров
      29 апреля 2015, 12:45
      0
      Кстати, там в примере Василия,
      также нету ничего в запросе связанного с сортировкой…
      0.0000322: xPDO query object created
      0.0003891: innerJoined Ticket as Ticket
      0.0001400: Added selection of TicketFile: SQL_CALC_FOUND_ROWS `id`, `parent`, `class`, `source`, `name`, `description`, `path`, `file`, `type`, `size`, `createdon`, `createdby`, `url`, `thumb`, `deleted`, `properties`, `hash`
      0.0001042: Added selection of Ticket: `pagetitle`
      0.0005560: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `TicketFile`.`id`, `TicketFile`.`parent`, `TicketFile`.`class`, `TicketFile`.`source`, `TicketFile`.`name`, `TicketFile`.`description`, `TicketFile`.`path`, `TicketFile`.`file`, `TicketFile`.`type`, `TicketFile`.`size`, `TicketFile`.`createdon`, `TicketFile`.`createdby`, `TicketFile`.`url`, `TicketFile`.`thumb`, `TicketFile`.`deleted`, `TicketFile`.`properties`, `TicketFile`.`hash`, `Ticket`.`pagetitle` FROM `modx_tickets_files` AS `TicketFile` JOIN `modx_site_content` `Ticket` ON Ticket.id = TicketFile.parent "
      0.0023780: Total time
      1 835 008: Memory usage
      Павел Сидоров
      29 апреля 2015, 12:52
      0
      Видимо и вправду он не принимает массив…

      'sortby' => 'docsContract.id',
          'sortdir' => 'DESC'
      так работает.
        Алексей Ерохин
        29 апреля 2015, 13:28
        +1
        sortby из pdotools принимает json массив, если надо по нескольким полям отсортировать.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5