От чего может возникать такая ошибка?

Лог забивается такой странной ошибкой
(ERROR @ /core/xpdo/om/xpdoquery.class.php: 704) Error parsing condition with key 0:
Вася
07 декабря 2017, 11:38
modx.pro
1
2 563
0
Поблагодарить автора Отправить деньги

Комментарии: 2

Алексей Ерохин
07 декабря 2017, 17:10
+1
Неправильно составлены критерии выборки в методах getObject, getCollection, getIterator, newQuery (where)
Судя по ошибке, где-то условие записано в виде SQL и его не удается распарсить, либо ошибка, либо используется какой-то оператор, который не принимается xpdo
Список принимаемых:
'=',
        '!=',
        '<',
        '<=',
        '>',
        '>=',
        '<=>',
        ' LIKE ',
        ' IS NULL',
        ' IS NOT NULL',
        ' BETWEEN ',
        ' IN ',
        ' IN(',
        ' NOT(',
        ' NOT (',
        ' NOT IN ',
        ' NOT IN(',
        ' EXISTS (',
        ' EXISTS(',
        ' NOT EXISTS (',
        ' NOT EXISTS(',
        ' COALESCE(',
        ' GREATEST(',
        ' INTERVAL(',
        ' LEAST(',
        'MATCH(',
        'MATCH (',
        'MAX(',
        'MIN(',
        'AVG('
В вашем случае вообще условие пустое
    Кирилл Киселев
    02 октября 2018, 09:06
    +1
    Лично у меня такая ошибка была с pdoMenu. В параметре where был пустой плейсхолдер и он добавлял его как 0=
    Для дебага добавил в xpdoquery.class.php такую строчку после 704 строки (у меня это 702 строка), строка, которая уведомляет нас об ошибке.
    $this->xpdo->log(xPDO::LOG_LEVEL_ERROR, print_r($conditions, true));

    Потом, добавил &showLog=`1` в вызов pdoMenu.
    И увидел, что и вправду, первым параметром приходит 0=.
    Убрал из всех вызовов меню пустой плейсхолдер и ошибки пропали.
    У кого-то может быть другая проблема. Советую для дебага то, что я прописал и, возможно, найдете проблемное место.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2