Итак, начнем с самого простого, но такого важного! - обращение к объектам (таблицам).
Допустим, мы хотим получить документ, зная его 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();