类 ComparisonExpression
比较是一种查询表达式类型,它表示涉及字段、运算符和值的运算。在最常见的形式中,比较的字符串表示形式为field = value
属性摘要
-
$_field protected
Cake\Database\ExpressionInterface|array|string
要在运算符左侧使用的字段名称或表达式
-
$_isMultiple protected
bool
此表达式中的值是否为可遍历的
-
$_operator protected
string
用于比较字段和值的运算符
-
$_type protected
string|null
用于将值转换为数据库表示形式的类型
-
$_value protected
mixed
要在运算符右侧使用的值
-
$_valueExpressions protected
arrayCake\Database\ExpressionInterface>
此表达式值中找到的 ExpressionInterface 对象的缓存列表。
方法摘要
-
__clone() public
创建深度克隆。
-
__construct() public
构造函数
-
_bindValue() protected
在占位符生成器中注册一个值,并返回生成的占位符
-
_castToExpression() protected
如果类型类实现了 ExpressionTypeInterface,则有条件地将传入的值转换为 ExpressionInterface 对象。否则,返回未修改的值。
-
_collectExpressions() protected
返回一个数组,其中第一个位置是原始 $values,第二个位置是可以在其中找到的所有 ExpressionInterface 对象。
-
_flattenValue() protected
将可遍历的值转换为由 $binder 生成的占位符集,并用
,
分隔 -
_requiresToExpressionCasting() protected
返回一个数组,其中包含需要将值转换为表达式类型的类型,这些类型来自作为参数传入的类型名称列表。
-
_stringExpression() protected
在使用占位符 $binder 注册值后,返回一个模板和一个占位符。
-
getField() public
返回字段名称
-
getOperator() public
返回用于比较的运算符
-
getValue() public
返回用于比较的值
-
setField() public
设置字段名称
-
setOperator() public
设置用于比较的运算符
-
setValue() public
设置值
-
sql() public
将节点转换为 SQL 字符串片段。
-
traverse() public
递归地迭代表达式的每个部分,针对表达式的树的每个级别,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
方法详细信息
__construct() ¶ public
__construct(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null, string $operator = '=')
构造函数
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的字段名称
-
mixed
$value 要在比较中使用的值
-
string|null
$type optional 用于转换值的类型名称
-
string
$operator optional 用于比较字段和值的运算符
_bindValue() ¶ protected
_bindValue(mixed $value, Cake\Database\ValueBinder $binder, string|null $type = null): string
在占位符生成器中注册一个值,并返回生成的占位符
参数
-
mixed
$value 要绑定的值
-
Cake\Database\ValueBinder
$binder 要使用的值绑定器
-
string|null
$type optional $value 的类型
返回
string
_castToExpression() ¶ protected
_castToExpression(mixed $value, string|null $type = null): mixed
如果类型类实现了 ExpressionTypeInterface,则有条件地将传入的值转换为 ExpressionInterface 对象。否则,返回未修改的值。
参数
-
mixed
$value 要转换为 ExpressionInterface 的值
-
string|null
$type optional 类型名称
返回
mixed
_collectExpressions() ¶ protected
_collectExpressions(Cake\Database\ExpressionInterface|iterable $values): array
返回一个数组,其中第一个位置是原始 $values,第二个位置是可以在其中找到的所有 ExpressionInterface 对象。
参数
-
Cake\Database\ExpressionInterface|iterable
$values 要插入的行
返回
array
_flattenValue() ¶ protected
_flattenValue(iterable $value, Cake\Database\ValueBinder $binder, string|null $type = null): string
将可遍历的值转换为由 $binder 生成的占位符集,并用,
分隔
参数
-
iterable
$value 要展平的值
-
Cake\Database\ValueBinder
$binder 要使用的值绑定器
-
string|null
$type optional 要将值转换成的类型
返回
string
_requiresToExpressionCasting() ¶ protected
_requiresToExpressionCasting(array $types): array
返回一个数组,其中包含需要将值转换为表达式类型的类型,这些类型来自作为参数传入的类型名称列表。
参数
-
array
$types 类型名称列表
返回
array
_stringExpression() ¶ protected
_stringExpression(Cake\Database\ValueBinder $binder): array
在使用占位符 $binder 注册值后,返回一个模板和一个占位符。
参数
-
Cake\Database\ValueBinder
$binder 要使用的值绑定器。
返回
array
getField() ¶ public
getField(): Cake\Database\ExpressionInterface|array|string
返回字段名称
返回
Cake\Database\ExpressionInterface|array|string
setField() ¶ public
setField(Cake\Database\ExpressionInterface|array|string $field): void
设置字段名称
参数
-
Cake\Database\ExpressionInterface|array|string
$field 要比较的字段。
返回
void
setOperator() ¶ public
setOperator(string $operator): void
设置用于比较的运算符
参数
-
string
$operator 要用于比较的运算符。
返回
void
sql() ¶ public
sql(Cake\Database\ValueBinder $binder): string
将节点转换为 SQL 字符串片段。
参数
-
Cake\Database\ValueBinder
$binder
返回
string
traverse() ¶ public
traverse(Closure $callback): $this
递归地迭代表达式的每个部分,针对表达式的树的每个级别,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
参数
-
Closure
$callback
返回
$this
属性详细信息
$_valueExpressions ¶ 受保护
此表达式值中找到的 ExpressionInterface 对象的缓存列表。
类型
arrayCake\Database\ExpressionInterface>