Criteria - группа классов, позволяющих строить условия для инкапсулированных SQL запросов. Criteria - это набор классов, которые используются для инкапсуляции условий, которые используются в SQL запросах в зонах WHERE и HAVING. Все критерии наследуются от базового lmbSQLBaseCriteria, которые реализует необходимую функциональность по группировке и по парсингу критерий.
| Критерий | Назначение |
|---|---|
| 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));