Часть 2
Последнее обновление Apr 5th, 2020 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$290 per month—let's make that $500!
Learn moreВ этой статье мы поговорим о создании и удалении объектов (и соответствующих им строк в базе данных), а также о более сложных запросах.
Создание объектов¶
Создание объекта обрабатывается методом newObject. Предполагается, что объект, который вы пытаетесь создать, был правильно определен внутри вашей XML-схемы, и эта схема сгенерировала правильные файлы классов. Для простого примера мы можем взглянуть на встроенные объекты MODX.
Строка никогда не добавляется в базу данных до тех пор, пока не будет запущена команда объекта save()
.
Удаление объекта¶
Чтобы удалить объект из базы данных, мы используем команду remove:
Это также удалит любые составные отношения, определенные в схеме объекта. В предыдущем примере с modTemplates
это объекты modTemplateVarTemplate
, которые отображают TV в шаблонах. Те будут каскадом и будут удалены.
Более сложные запросы¶
Итак, довольно скоро вам нужно будет выполнить несколько более сложных запросов, чем мы имели дело. Вот где появляется объект xPDOQuery
. Это позволяет создавать абстрактные объекты запросов, которые эмулируют более сложные команды SQL.
Итак, давайте попробуем получить третьи 10 ресурсов (то есть 21-30), упорядоченные по menuindex, которые либо 1) опубликованы и доступны для поиска, либо 2) созданы пользователем с именем пользователя 'george123'.
Несколько вещей, которые нужно отметить. Во-первых, обратите внимание, что innerJoin сначала передает имя класса, а затем псевдоним. И в orCondition, третий параметр - это номер группы, который эффективно группирует условия в соответствующие круглые скобки (первые 2 в первой группе в скобках, третьи в другой).
xPDOQuery поддерживает методы: join, rightJoin, leftJoin, innerJoin, andCondition, orCondition, sortby, groupby, limit, bindGraph, bindGraphNode, and select.
Очевидно, что вы можете сойти с ума со сложными запросами. Хорошая особенность xPDO в MODX состоит в том, что на самом деле существует масса различных способов сделать большинство вещей - вы также могли бы использовать $modx->getCollectionGraph и для этого.
В следующей статье, мы поговорим о том, как это используется в контексте процессоров MODX с JSON.
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$290 per month—let's make that $500!
Learn more