yous
@yous

Фильтр в getlist выдаёт ошибку?

Короче вот такая ошибка не понимаю почему, делаю по документации
https://dev.1c-bitrix.ru/learning/course/index.php...

Для использования фильтра в виде массива существует метод конвертации из массива в объект \Bitrix\Main\ORM\Query\Filter\ConditionTree::createFromArray. Формат массива имеет общий вид:

$filter = [
    ['FIELD', '>', 2],
    [
        'logic' => 'or',
        ['FIELD', '<', 8],
        ['SOME', 9]
    ],
    ['FIELD', 'in', [5, 7, 11]],
    ['FIELD', '=', ['column' => 'FIELD2']],
    ['FIELD', 'in', [
        ['column' => 'FIELD1'],
        ['value' => 'FIELD2'],
        'FIELD3']
    ],
    [
        'negative' => true,
        ['FIELD', '>', 19]
    ],
 ];
Совместимость с getList
Если вместо цепочки вызовов Query использовать getList, то фильтр вставляется в него вместо массива:

\Bitrix\Main\UserTable::getList([
   'filter' => ['=ID' => 1]
]);

\Bitrix\Main\UserTable::getList([
   'filter' => Query::filter()
      ->where('ID', 1)
]);


Мой запрос

'filter' => \Bitrix\Main\Entity\Query::filter()->where(
              [
                ["UF_ACTIVE", "=", 1],
                ["UF_ELEMENT_ID", "=", $arFields["ID"]],
                ["UF_CREATED_BY", "!=", ['column' => 'UF_USER_ID']],
                [
                  'LOGIC' => 'OR',
                  ['UF_DATE_ACTIVE', "<=", mktime(23,59,59,date("m"),date("d")+1,date("Y"))],
                  ['UF_DATE_ACTIVE', "=", null]
                ]
              ])


проблема именно в конструкции когда пытаюсь добавить LOGIC=>OR, убираю всё норм

Выдаёт ошибку

[Bitrix\Main\ArgumentException] 
Unknown operator `Array` (100)
  • Вопрос задан
  • 289 просмотров
Пригласить эксперта
Ответы на вопрос 1
nedosekinstanislav
@nedosekinstanislav
Штирлиц как никогда был близок к провалу
["UF_CREATED_BY", "!=", ['column' => 'UF_USER_ID']]

на

["!UF_CREATED_BY" => false]

или на

["!=UF_CREATED_BY" => $arFields["UF_USER_ID"]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы