Содержание

Criteria

Criteria - группа классов, позволяющих строить условия для инкапсулированных SQL запросов. Criteria - это набор классов, которые используются для инкапсуляции условий, которые используются в SQL запросах в зонах WHERE и HAVING. Все критерии наследуются от базового lmbSQLBaseCriteria, которые реализует необходимую функциональность по группировке и по парсингу критерий.

Структура Criteria

:limb3_2007_2:ru:packages:dbal:limb_3_x_2007_2_dbal_criteria.png}

Список базовых классов

КритерийНазначение
lmbSQLRawCriteriaКритерий, текст которого вставляется в запрос без парсинга и каких-либо изменений.
lmbSQLFieldCriteriaПозволяет вставлять условия на какое-либо поле выборки.
lmbSQLTableFieldCriteriaАналогично lmbSQLFieldCriteria, только имя поля и имя таблицы нужно указывать явно.
SQLFielBetweenCriteriaПозволяет вставлять BETWEEN условия для полей выборки.
lmbSQLFalseCriteriaКритерий, который никогда не выполняется.
lmbSQLTrueCriteriaКритерий, который всегда выполняется.

Использование критерий

Критерии используются обычно совместно с потомками lmbFilteredQuery, такими как lmbSelectQuery, lmbUpdateQuery для добавления условий к %where% и %having%.

Наиболее часто используется lmbSQLFieldCriteria:

lmbSQLFieldCriteria('name', '%'.$name.'%', lmbSQLFieldCriteria :: LIKE);

Различные критерии можно объединять, то есть строить более сложные, например:

    $criteria = new lmbSQLTableFieldCriteria('ingredient.name', '%'.$name.'%', lmbSQLFieldCriteria :: LIKE);
    $new_criteria = new lmbSQLTableFieldCriteria('ingredient.name', '%'.$name.'%', lmbSQLFieldCriteria :: LIKE);
    $criteria->addOr($new_criteria);
    $criteria->addAnd(new SQLFielBetweenCriteria('value', 10, 20));