maximaster / bitrix-orm-condition
Удобные классы для работы с построением условий ORM-запросов.
v1.0.1
2024-08-28 09:02 UTC
Requires
- php: >=7.4
- maximaster/bitrix-enums: >=18.5
This package is auto-updated.
Last update: 2024-10-28 09:23:45 UTC
README
Удобные классы для работы с построением условий ORM-запросов.
Класс Column
Упрощает создание Condition
.
- создаётся из имени колонки;
- с помощью методов equals, greater и аналогичных создаёт
Condition
илиConditionTree
:
use Maximaster\BitrixOrmCondition\Column; // Получаем ConditionTree который можно добавить в ::query()->where(...). Column::of('NAME')->equals('Вася')->toTree(); // Есть ряд удобных методов строго типизирующие входные значения. Column::of('ID')->foundIn(ElementTable::query()->where(/*...*/));
Важно! На текущий момент класс использует стратегию "NULL - это минус
бесконечность". Например, при использовании метода less(5)
вы получите и те
строки, у которых значение NULL
. Данная логика может быть желательной или
нежелательной в зависимости от ситуации. В будущем планируется дать возможность
управлять данным поведением.
Класс Condition
- использует типизированный Operator вторым аргументом конструктора.
Класс ConditionTree
- имеет методы forAny/forAll, для включения logic через or/and;
- позволяет опционально через конструктор указать вложенные условия и логику;
- чинит баг метода
where
при входных данныхCondition[]|ConditionTree[]
.