Для того чтобы настроить параметры WHERE в MODX REVO и сделать выборку по условиям, необходимо использовать класс modResource.
Сначала вы должны получить экземпляр класса modResource, используя метод getObject из объекта класса modX:
$modx = new modX(); $modx->initialize('web'); $resource = $modx->getObject('modResource', ['id' => 1]);
В приведенном выше примере мы получаем ресурс с идентификатором 1. Вы можете заменить ['id' => 1]
на любые другие условия выборки, которые вам нужны.
Теперь, когда у нас есть экземпляр класса modResource, мы можем использовать его методы и свойства для настройки параметров WHERE.
$query = $modx->newQuery('modResource'); $query->where([ 'published' => 1, 'publishedon:<' => date('Y-m-d H:i:s'), 'deleted' => 0 ]);
В приведенном выше примере мы создаем новый запрос модели modResource и устанавливаем параметры WHERE с помощью метода where.
В этом примере мы выбираем только опубликованные ресурсы (поле published равно 1), опубликованные до текущей даты и времени (поле publishedon меньше текущей даты и времени) и незавершенные ресурсы (поле deleted равно 0).
Если вам нужно добавить дополнительные условия WHERE, вы можете просто добавить их в массив в методе where
.
После установки параметров WHERE вы можете выполнить запрос с помощью метода find
и получить результат:
$results = $modx->getIterator('modResource', $query); foreach ($results as $result) { echo $result->get('pagetitle') . '<br>'; }
В приведенном выше примере мы получаем итератор ресурсов, соответствующих заданным условиям WHERE, и выводим pagetitle
для каждого результата.
Надеюсь, что эта информация помогла вам понять, как настроить параметры WHERE в MODX REVO для выборки по условиям.