Инструменты пользователя

Инструменты сайта


limb3_2007_2:ru:packages:dbal:criteria

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));

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ____     __ ______     __   ___ 
  / __/ __ / //_  __/ __ / /  / _ |
 / _/  / // /  / /   / // /  / __ |
/_/    \___/  /_/    \___/  /_/ |_|
 
limb3_2007_2/ru/packages/dbal/criteria.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1