Класс FunctionExpression
Этот класс представляет строку вызова функции в операторе SQL. Вызовы могут быть построены путём передачи имени функции и списка параметров. По соображениям безопасности все передаваемые параметры по умолчанию заключаются в кавычки, если не указано иное.
- Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
-
Cake\Database\Expression\FunctionExpression реализует Cake\Database\TypedResultInterface использует Cake\Database\Type\ExpressionTypeCasterTrait , Cake\Database\TypedResultTrait
Расположение: Database/Expression/FunctionExpression.php
Краткое описание свойств
-
$_nameprotectedИмя функции, которое будет построено при генерации строки SQLstring
Унаследованные свойства
Краткое описание методов
- __construct() public
Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Дополнительно можно передать список типов для каждого связанного параметра.
- add() publicДобавляет один или несколько аргументов для вызова функции.
- count() public
Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.
- getName() publicПолучает имя SQL-функции, которая должна быть вызвана в этом выражении.
-
Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.
- setName() publicУстанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.
- sql() public
Возвращает строковое представление этого объекта, чтобы его можно было использовать в запросе SQL. Обратите внимание, что значения условных значений не включены в строку, вместо них используются заглушки, которые могут быть заменены соответствующими значениями в кавычках.
Подробное описание методов
__construct()source public
__construct( string $name , array $params = [] , array $types = [] , string $returnType = 'string' )
Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Дополнительно можно передать список типов для каждого связанного параметра.
По умолчанию все передаваемые параметры заключаются в кавычки. Если вы хотите использовать литеральные аргументы, вам нужно явно указать это функции.
Примеры:
$f = new FunctionExpression('CONCAT', ['CakePHP', ' rules']);
Предыдущая строка сгенерирует CONCAT('CakePHP', ' rules')
$f = new FunctionExpression('CONCAT', ['name' => 'literal', ' rules']);
Что даст CONCAT(name, ' rules')
Параметры
- строка
$name - имя строящейся функции
- массив
$paramsнеобязательно [] список аргументов, передаваемых функции. Если ассоциативный, ключ будет использоваться как аргумент, когда значение равно 'литерал'
- массив
$typesнеобязательно [] ассоциативный массив типов, которые будут связаны с переданными аргументами
- строка
$returnTypeнеобязательно 'string' - Тип возвращаемого значения этого выражения
Переопределяет
Cake\Database\Expression\QueryExpression::__construct() add()source public
add( array $params , array $types = [] , boolean $prepend = false )
Добавляет один или несколько аргументов для вызова функции.
Параметры
- массив
$params список аргументов, передаваемых функции. Если ассоциативный, ключ будет использоваться как аргумент, когда значение равно 'литерал'
- массив
$typesнеобязательно [] ассоциативный массив типов, которые будут связаны с переданными аргументами
- логическое значение
$prependнеобязательно false - Добавлять аргументы в начало или конец списка
Возвращает
$this
См.
\Cake\Database\Expression\FunctionExpression::__construct() для получения дополнительной информации.Переопределяет
Cake\Database\Expression\QueryExpression::add() count()source public
count( )
Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.
Возвращает
целое числоПереопределяет
Cake\Database\Expression\QueryExpression::count() getName()source public
getName( )
Получает имя SQL-функции, которая должна быть вызвана в этом выражении.
Возвращает
строкаname()source public deprecated
name( string|null $name = null )
Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.
Устарело
3.4.0 Используйте setName()/getName() вместо этого.Параметры
- строка|null
$nameнеобязательно null - Имя функции
Возвращает
строка|Cake\Database\Expression\FunctionExpression$this
setName()source public
setName( string $name )
Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.
Параметры
- строка
$name - Имя функции
Возвращает
$this
sql()source public
sql( Cake\Database\ValueBinder $generator )
Возвращает строковое представление этого объекта, чтобы его можно было использовать в запросе SQL. Обратите внимание, что значения условных значений не включены в строку, вместо них используются заглушки, которые могут быть заменены соответствующими значениями в кавычках.
Параметры
- Cake\Database\ValueBinder
$generator - Объект-генератор заглушек
Возвращает
строкаПереопределяет
Cake\Database\Expression\QueryExpression::sql() Методы, унаследованные от Cake\Database\Expression\QueryExpression
__call()source public
__call( string $method , array $args )
Помогает вызывать методы and() и or() прозрачно.
Параметры
- строка
$method - Имя метода.
- массив
$args - Аргументы, которые нужно передать методу.
Возвращает
Cake\Database\Expression\QueryExpressionИсключения
BadMethodCallException_addConditions()source protected
_addConditions( array $conditions , array $types )
Вспомогательная функция, используемая для разбиения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного SQL-выражения. Строковые условия хранятся непосредственно в условиях, а любые другие представления обернуты в соответствующий экземпляр или этого класса.
Параметры
- массив
$conditions - список условий, которые должны быть сохранены в этом объекте
- массив
$types - список типов, связанных с полями, на которые ссылаются в $conditions
_calculateType()source protected
_calculateType( string|Cake\Database\Expression\IdentifierExpression $field )
Возвращает имя типа для переданного поля, если оно было сохранено в typeMap.
Параметры
- строка|
Cake\Database\Expression\IdentifierExpression$field - Имя поля, для которого требуется получить тип.
Возвращаемое значение
строка|nullВычисленный тип или null, если тип неизвестен.
_parseCondition()source protected
_parseCondition( string $field , mixed $value )
Парсит строковые условия, пытаясь извлечь оператор, если таковой имеется, и, наконец, возвращает либо соответствующий объект QueryExpression, либо обычное строковое представление условия. Эта функция отвечает за создание заготовок и замену значений на них, а также за хранение значения в другом месте для последующей привязки.
Параметры
- строка
$field Значение, из которого будут извлечены фактическое поле и оператор.
- смешанное
$value - Значение, которое должно быть привязано к заготовке для поля
Возвращаемое значение
строка|Cake\Database\ExpressionInterfaceaddCase()source public
addCase( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values = [] , array $types = [] )
Добавляет новое выражение case в объект выражения.
Параметры
- массив|
Cake\Database\ExpressionInterface$conditions Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
- массив|
Cake\Database\ExpressionInterface$valuesoptional [] ассоциативный массив значений, которые должны быть связаны с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее $value используется в качестве значения
ELSE- массив
$typesoptional [] ассоциативный массив типов, которые должны быть связаны со значениями, переданными в $values
Возвращаемое значение
$this
and_()source public
and_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию на «И»
Параметры
- функция|строка|массив|
Cake\Database\ExpressionInterface$conditions - для объединения с И
- массив
$typesoptional [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращаемое значение
Cake\Database\Expression\QueryExpressionbetween()source public
between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type = null )
Добавляет новое условие в объект выражения в виде «поле МЕЖДУ от И до».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Имя поля для сравнения с диапазоном значений.
- смешанное
$from - Начальное значение диапазона.
- смешанное
$to - Конечное значение диапазона сравнения.
- строка|null
$typeoptional null - имя типа для $value, настроенного с помощью Type map.
Возвращаемое значение
$this
eq()source public
eq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие в объект выражения в виде «поле = значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое сравнивается со значением.
- смешанное
$value - Значение, которое должно быть привязано к $field для сравнения.
- строка|null
$typeoptional null имя типа для $value, настроенного с помощью Type map. Если оно заканчивается на «[]», а значение является массивом, то будут созданы несколько заготовок, по одной на каждое значение в массиве.
Возвращаемое значение
$this
equalFields()source public
equalFields( string $left , string $right )
Создаёт условие равенства или присваивание с идентификатором обертки.
Параметры
- строка
$left - Имя поля условия левого соединения.
- строка
$right - Имя поля условия правого соединения.
Возвращаемое значение
$this
exists()source public
exists( Cake\Database\ExpressionInterface $query )
Добавляет новое условие в объект выражения в виде «СУЩЕСТВУЕТ (...)».
Параметры
-
Cake\Database\ExpressionInterface$query - внутренний запрос
Возвращаемое значение
$this
getConjunction()source public
getConjunction( )
Получает текущую конъюнкцию, настроенную для условий на данном уровне дерева выражения.
Возвращаемое значение
строкаgt()source public
gt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие в объект выражения в виде «поле > значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое сравнивается со значением.
- смешанное
$value - Значение, которое должно быть привязано к $field для сравнения.
- строка|null
$typeoptional null - имя типа для $value, настроенного с помощью Type map.
Возвращаемое значение
$this
gte()source public
gte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие в объект выражения в виде «поле >= значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое сравнивается со значением.
- смешанное
$value - Значение, которое должно быть привязано к $field для сравнения.
- строка|null
$typeoptional null - имя типа для $value, настроенного с помощью Type map.
Возвращаемое значение
$this
hasNestedExpression()source public
hasNestedExpression( )
Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.
Возвращаемое значение
booleanin()source public
in( string|Cake\Database\ExpressionInterface $field , string|array $values , string|null $type = null )
Добавляет новое условие в объект выражения в виде «поле В (значение1, значение2)».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое сравнивается со значением.
- строка|массив
$values - значение, которое должно быть привязано к $field для сравнения
- строка|null
$typeoptional null - имя типа для $value, настроенного с помощью Type map.
Возвращаемое значение
$this
isCallable()source public
isCallable( callable $c )
Проверьте, является ли вызываемый объект допустимым.
Мы не принимаем обратные вызовы типа ['class', 'method'], так как они часто содержат данные пользователя, а массивы строк легко подсунуть.
Параметры
- вызываемый объект
$c - Вызываемый объект для проверки.
Возвращаемые значения
booleanДопустимый вызываемый объект.
isNotNull()source public
isNotNull( string|Cake\Database\ExpressionInterface $field )
Добавляет новое условие к объекту выражения в форме «поле НЕ равно NULL».
Параметры
- строка|
Cake\Database\ExpressionInterface$field поле базы данных, которое должно быть проверено на непустоту
Возвращаемые значения
$this
isNull()source public
isNull( string|Cake\Database\ExpressionInterface $field )
Добавляет новое условие к объекту выражения в форме «поле равно NULL».
Параметры
- строка|
Cake\Database\ExpressionInterface$field поле базы данных, которое должно быть проверено на пустоту
Возвращаемые значения
$this
iterateParts()source public
iterateParts( callable $callable )
Выполняет функцию вызова для каждой части, формирующей это выражение.
Функция вызываемого объекта должна возвращать значение, которым будет заменена текущая посещаемая часть. Если функция вызываемого объекта возвращает null, то часть полностью удаляется из этого выражения.
Функция обратного вызова получит каждое из условий в качестве первого параметра и ключ в качестве второго. Можно объявить второй параметр как передаваемый по ссылке, это позволит изменить ключ, под которым хранится измененная часть.
Параметры
- вызываемый объект
$callable - Вызываемый объект для применения к каждой части.
Возвращаемые значения
$this
like()source public
like( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле ПОДОБНО значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращаемые значения
$this
lt()source public
lt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле < значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращаемые значения
$this
lte()source public
lte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле <= значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращаемые значения
$this
not()source public
not( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет новый набор условий к этому уровню дерева и инвертирует конечный результат, добавив NOT, это будет выглядеть как «НЕ ( (условие1) И (условия2) )», сочленение зависит от того, которое в настоящее время настроено для этого объекта.
Параметры
- строка|массив|
Cake\Database\ExpressionInterface$conditions - для добавления и инвертирования
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращаемые значения
$this
notEq()source public
notEq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле != значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null имя типа для $value, как настроено с помощью карты типов. Если он заканчивается на «[]», а значение является массивом, то будут созданы несколько заполнительных значений, по одному на каждое значение в массиве.
Возвращаемые значения
$this
notExists()source public
notExists( Cake\Database\ExpressionInterface $query )
Добавляет новое условие к объекту выражения в форме «НЕ СУЩЕСТВУЕТ (...)».
Параметры
-
Cake\Database\ExpressionInterface$query - внутренний запрос
Возвращаемые значения
$this
notIn()source public
notIn( string|Cake\Database\ExpressionInterface $field , array $values , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле НЕ В (значение1, значение2)».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- массив
$values - значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращаемые значения
$this
notLike()source public
notLike( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в форме «поле НЕ ПОДОБНО значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, сравниваемое со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращаемые значения
$this
or_()source public
or_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия, и настраивает сочленение на «ИЛИ».
Параметры
- вызываемый объект|строка|массив|
Cake\Database\ExpressionInterface$conditions - для объединения с ИЛИ
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращаемые значения
Cake\Database\Expression\QueryExpressionsetConjunction()source public
setConjunction( string $conjunction )
Изменяет сочленение для условий на этом уровне дерева выражений.
Параметры
- строка
$conjunction - Значение, используемое для объединения условий
Возвращаемые значения
$this
tieWith()source public deprecated
tieWith( string|null $conjunction = null )
Изменяет союзи для условий на этом уровне дерева выражения. Если вызывается без аргументов, возвращает текущее значение конфигурации.
Устарело
3.4.0 Используйте setConjunction()/getConjunction() вместо этого.Параметры
- string|null
$conjunctionoptional null значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохраненное
Возвращает
string|Cake\Database\Expression\QueryExpression$this
traverse()source public
traverse( callable $callable )
Проходит по структуре дерева этого выражения запроса, выполняя функцию обратного вызова для каждого из условий, включенных в этот объект. Полезно для компиляции конечного выражения или для интроспекции структуры.
Функция обратного вызова принимает в качестве единственного аргумента экземпляр ExpressionInterface
Параметры
- callable
$callable - Функция обратного вызова, которая будет применяться ко всем подвыражениям.
Реализация
Cake\Database\ExpressionInterface::traverse() type()source public deprecated
type( string|null $conjunction = null )
Обратно совместимый обертка для tieWith()
Устарело
3.2.0 Используйте setConjunction()/getConjunction() вместо этогоПараметры
- string|null
$conjunctionoptional null значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохраненное
Возвращает
string|Cake\Database\Expression\QueryExpression$this
Методы, используемые из Cake\Database\Type\ExpressionTypeCasterTrait
_castToExpression()source protected
_castToExpression( mixed $value , string $type )
Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.
Параметры
- mixed
$value - Значение, которое нужно преобразовать в ExpressionInterface
- string
$type - Имя типа
Возвращает
mixed_requiresToExpressionCasting()source protected
_requiresToExpressionCasting( array $types )
Возвращает массив с типами, для которых значения должны быть преобразованы в выражения, из списка имен типов, переданных в качестве параметра.
Параметры
- array
$types - Список имен типов
Возвращает
arrayМетоды, используемые из Cake\Database\TypedResultTrait
getReturnType()source public
getReturnType( )
Получает тип значения, которое сгенерирует этот объект.
Возвращает
stringreturnType()source public deprecated
returnType( string|null $type = null )
Устанавливает тип значения, которое сгенерирует этот объект. Если вызывается без аргументов, возвращает текущий известный тип
Устарело
3.5.0 Используйте getReturnType()/setReturnType() вместо этого.Параметры
- string|null
$typeoptional null - Имя типа, который должен быть возвращен
Возвращает
string|Cake\Database\TypedResultTrait$this
setReturnType()source public
setReturnType( string $type )
Устанавливает тип значения, которое сгенерирует этот объект.
Параметры
- string
$type - Имя типа, который должен быть возвращен
Возвращает
$this
Методы, используемые из Cake\Database\TypeMapTrait
defaultTypes()source public deprecated
defaultTypes( array $types = null )
Позволяет устанавливать значения по умолчанию для типов при цепочечном запросе
Устарело
3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.Параметры
- array
$typesoptional null - Массив типов для установки.
Возвращает
$this|array
getDefaultTypes()source public
getDefaultTypes( )
Получает значения типов по умолчанию для текущей карты типов.
Возвращает
arraygetTypeMap()source public
getTypeMap( )
Возвращает существующую карту типов.
Возвращает
Cake\Database\TypeMapsetDefaultTypes()source public
setDefaultTypes( array $types )
Перезаписывает значения типов по умолчанию для полей в реализующем объект.
Этот метод полезен, если вам необходимо установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.
Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()
Параметры
- array
$types - Массив типов для установки.
Возвращает
$this
См. также
\Cake\Database\TypeMap::setDefaults()setTypeMap()source public
setTypeMap( array|Cake\Database\TypeMap $typeMap )
Создает новую карту типов, если $typeMap является массивом, в противном случае меняет ее на заданную.
Параметры
- array|
Cake\Database\TypeMap$typeMap - Создает карту типов, если массив, в противном случае устанавливает заданную карту типов
Возвращает
$this
typeMap()source public deprecated
typeMap( array|Cake\Database\TypeMap|null $typeMap = null )
Создает новую карту типов, если $typeMap является массивом, в противном случае возвращает существующую карту типов или меняет ее на заданную.
Устарело
3.4.0 Используйте setTypeMap()/getTypeMap() вместо этого.Параметры
- array|
Cake\Database\TypeMap|null$typeMapoptional null - Создает карту типов, если массив, в противном случае устанавливает заданную карту типов
Возвращает
$this|\Cake\Database\TypeMap
Магические методы унаследованы от Cake\Database\TypedResultInterface
getReturnType() |
Подробности свойств
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.7/class-Cake.Database.Expression.FunctionExpression.html