Skip to content

Удобные классы для работы с построением условий ORM-запросов.

Notifications You must be signed in to change notification settings

maximaster/bitrix-orm-condition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

maximaster/bitrix-orm-condition

Удобные классы для работы с построением условий 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[].

About

Удобные классы для работы с построением условий ORM-запросов.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages