MODX REVO не работает выборка по условиям, как настроить параметр WHERE?

Для того чтобы настроить параметры 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 для выборки по условиям.