Итак, начнем с самого простого, но такого важного! - обращение к объектам (таблицам).

Допустим, мы хотим получить документ, зная его ID.

$id = 10;
$obj = $modx->getObject('modResource', array(
      'id' => $id
));

Так же можно  сократить запрос;

$obj = $modx->getObject('modResource', 10); 

xPDO  автоматически использует второй параметр для фильтра по первичному ключу таблицы.

Вывод результата можно сделать двумя способами:

1) Используем ленивый способ: Обращаемся к свойству полученного объекта.

print "<br />Первый вариант обращения к свойствам полученного объекта. 
Pagetitle: ". $obj->pagetitle; 

2) Получаем значение через метод объекта.

print "<br />Второй вариант обращения к свойствам полученного объекта. 
Pagetitle: ". $obj->get('pagetitle');

В принципе, и в первом, и во втором случае вы получите одну и ту же строку, просто обращение к свойствам полученного объекта разные.

В данном случае первым параметром метода getObject передается имя класса, описывающего целевую таблицу. Вторым параметром передаем массив-условие ( название колонки и условное значение);

В результате чистый SQL получится

SELECT * FROM site_content WHERE id = 10 ;

Очень важно! Метод getObject() рассчитан на получение именно одного объекта, потому возвращает false как в случае отсутствия результата, то есть если вернул 0 строк, так  и в случае извлечение строк более одной. По этому, если вы проверяете

if(!$modx->getObject('modResource')){}
и результат отрицательный, то совершенно не факт, что не было получено результата вообще.

В объекте modResource описаны все колонки таблицы site_content, по этому вы можете получить любое свойство документа, такие как id, longtitle, published, deleted и т.п.

Такой метод работы с документами очень удобен тогда, когда мы точно знаем, что хотим получить один-единственный документ и поработать с его свойствами. Если же мы хотим получить сразу несколько документов, то надо использовать метод $modx->getCollection();

 

Если вам помог мой материал и вы есть на Хабрахабре, плюсание карму в дар :-)