类 AggregateExpression
这表示 SQL 语句中的 SQL 聚合函数表达式。可以通过传递函数名称和参数列表来构建调用。出于安全原因,默认情况下,除非明确告知,否则传递的所有参数都会被引用。
常量
属性摘要
-
$_conditions protected
数组
表示表达式树的“分支”的字符串或其他表达式对象的列表。例如,数组的一个键可能看起来像“sum > :value”。
-
$_conjunction protected
字符串
用于连接此对象内部存储的每个内部表达式的字符串,例如“AND”、“OR”等。
-
$_name protected
字符串
在生成 SQL 字符串时要构造的函数的名称。
-
$_returnType protected
字符串
此表达式在执行时将返回的类型名称。
-
$_typeMap protected
Cake\Database\TypeMap|null
-
$filter protected
Cake\Database\Expression\QueryExpression|null
-
$window protected
Cake\Database\Expression\WindowExpression|null
方法摘要
-
__clone() public
克隆此对象及其表达式子树。
-
__construct() public
构造函数。接受要调用的函数的名称和要传递给函数的参数列表。可选地,您可以传递一个类型列表,用于每个绑定参数。
-
_addConditions() protected
辅助函数,用于分解嵌套的条件数组,并在该对象内部构建一个树结构以表示完整的 SQL 表达式。字符串条件直接存储在条件中,而任何其他表示都将包装在该类的适当实例或实例周围。
-
_calculateType() protected
如果在 typeMap 中存储了传递的字段,则返回该字段的类型名称。
-
_castToExpression() protected
如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,将返回未修改的值。
-
_parseCondition() protected
通过尝试提取其中的运算符(如果有)来解析字符串条件,最后返回适当的 QueryExpression 对象或条件的纯字符串表示。此函数负责生成占位符并将值替换为占位符,同时将值存储在其他地方以便将来绑定。
-
_requiresToExpressionCasting() protected
返回一个数组,其中包含作为参数传递的类型名称列表中需要将值强制转换为表达式的类型。
-
add() public
为函数调用添加一个或多个参数。
-
and() public
返回一个新的 QueryExpression 对象,其中包含传递的所有条件,并将连接设置为“AND”。
-
between() public
以“field BETWEEN from AND to”的形式向表达式对象添加一个新条件。
-
case() public
返回一个新的 case 表达式对象。
-
count() public
函数的名称本身就是一个要生成的表达式,因此始终将此对象中存储的表达式数量增加 1。
-
eq() public
以“field = value”的形式向表达式对象添加一个新条件。
-
equalFields() public
使用标识符包装构建相等条件或赋值。
-
excludeCurrent() public
添加当前行帧排除。
-
excludeGroup() public
添加组帧排除。
-
excludeTies() public
添加平局帧排除。
-
exists() public
以“EXISTS (...)”的形式向表达式对象添加一个新条件。
-
filter() public
向 FILTER 子句添加条件。条件与
Query::where()
的格式相同。 -
frame() public
向窗口添加一个帧。
-
getConjunction() public
获取表达式树此级别条件的当前配置连接。
-
getDefaultTypes() public
获取当前类型映射的默认类型。
-
getName() public
获取此表达式中要调用的 SQL 函数的名称。
-
getReturnType() public
获取此对象将生成的类型的类型。
-
getTypeMap() public
返回现有的类型映射。
-
getWindow() protected
返回或为函数创建 WindowExpression。
-
groups() public
向窗口添加一个简单的组帧。
-
gt() public
以“field > value”的形式向表达式对象添加一个新条件。
-
gte() public
以“field >= value”的形式向表达式对象添加一个新条件。
-
hasNestedExpression() public
如果此表达式包含任何其他嵌套的 ExpressionInterface 对象,则返回 true。
-
in() public
以“field IN (value1, value2)”的形式向表达式对象添加一个新条件。
-
isNotNull() public
以“field IS NOT NULL”的形式向表达式对象添加一个新条件。
-
isNull() public
以“field IS NULL”的形式向表达式对象添加一个新条件。
-
iterateParts() public
为构成此表达式的每个部分执行回调。
-
like() public
以“field LIKE value”的形式向表达式对象添加一个新条件。
-
lt() public
以“field < value”的形式向表达式对象添加一个新条件。
-
lte() public
以“field <= value”的形式向表达式对象添加一个新条件。
-
not() public
向树的此级别添加一个新的条件集,并通过在前面添加一个 NOT 来否定最终结果,它将看起来像“NOT ( (condition1) AND (conditions2) )”连接取决于当前为此对象配置的连接。
-
notEq() public
以“field != value”的形式向表达式对象添加一个新条件。
-
notExists() public
以“NOT EXISTS (...)”的形式向表达式对象添加一个新条件。
-
notIn() public
以“field NOT IN (value1, value2)”的形式向表达式对象添加一个新条件。
-
notInOrNull() public
以“(field NOT IN (value1, value2) OR field IS NULL”的形式向表达式对象添加一个新条件。
-
notLike() public
以“field NOT LIKE value”的形式向表达式对象添加一个新条件。
-
or() public
返回一个新的 QueryExpression 对象,其中包含传递的所有条件,并将连接设置为“OR”。
-
order() public
向窗口添加一个或多个排序子句。
-
orderBy() public
向窗口添加一个或多个排序子句。
-
over() public
添加一个空的
OVER()
窗口表达式或一个命名的窗口表达式。 -
partition() public
向窗口添加一个或多个分区表达式。
-
range() public
在窗口中添加一个简单的范围框架。
-
rows() public
在窗口中添加一个简单的行框架。
-
setConjunction() public
更改表达式树此级别的条件的连接。
-
setDefaultTypes() public
覆盖实现对象中字段的默认类型映射。
-
setName() public
设置要在该表达式中调用的 SQL 函数的名称。
-
setReturnType() public
设置此对象将生成的值的类型。
-
setTypeMap() public
如果 $typeMap 是一个数组,则创建一个新的 TypeMap,否则将其替换为给定的 TypeMap。
-
sql() public
将 Node 转换为 SQL 字符串片段。
-
traverse() public
递归地遍历表达式树的每一层,递归地遍历表达式的每一部分,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
方法详细说明
__construct() ¶ public
__construct(string $name, array $params = [], array<string, string>|array<string|null> $types = [], string $returnType = 'string')
构造函数。接受要调用的函数的名称和要传递给函数的参数列表。可选地,您可以传递一个类型列表,用于每个绑定参数。
默认情况下,传递的所有参数都将被引用。如果您希望使用文字参数,则需要显式提示此函数。
示例
$f = new FunctionExpression('CONCAT', ['CakePHP', ' rules']);
上一行将生成 CONCAT('CakePHP', ' rules')
$f = new FunctionExpression('CONCAT', ['name' => 'literal', ' rules']);
将产生 CONCAT(name, ' rules')
参数
-
string
$name 要构造的函数的名称
-
array
$params optional 要传递给函数的参数列表。如果关联,则键将在值为 'literal' 时用作参数
-
array<string, string>|array<string|null>
$types optional 要与传递的参数关联的类型的关联数组
-
string
$returnType optional 该表达式的返回类型
_addConditions() ¶ protected
_addConditions(array $conditions, array<int|string, string> $types): void
辅助函数,用于分解嵌套的条件数组,并在该对象内部构建一个树结构以表示完整的 SQL 表达式。字符串条件直接存储在条件中,而任何其他表示都将包装在该类的适当实例或实例周围。
参数
-
array
$conditions 要存储在此对象中的条件列表
-
array<int|string, string>
$types 与 $conditions 中引用的字段关联的类型列表
返回
void
_calculateType() ¶ protected
_calculateType(Cake\Database\ExpressionInterface|string $field): string|null
如果在 typeMap 中存储了传递的字段,则返回该字段的类型名称。
参数
-
Cake\Database\ExpressionInterface|string
$field 要获取类型的字段名称。
返回
string|null
_castToExpression() ¶ protected
_castToExpression(mixed $value, string|null $type = null): mixed
如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,将返回未修改的值。
参数
-
mixed
$value 要转换为 ExpressionInterface 的值
-
string|null
$type optional 类型名称
返回
mixed
_parseCondition() ¶ protected
_parseCondition(string $condition, mixed $value): Cake\Database\ExpressionInterface|string
通过尝试提取其中的运算符(如果有)来解析字符串条件,最后返回适当的 QueryExpression 对象或条件的纯字符串表示。此函数负责生成占位符并将值替换为占位符,同时将值存储在其他地方以便将来绑定。
参数
-
string
$condition 从中提取实际字段和运算符的值。
-
mixed
$value 要绑定到字段占位符的值
返回
Cake\Database\ExpressionInterface|string
抛出
InvalidArgumentException
如果运算符无效或在 NULL 使用时缺失。
_requiresToExpressionCasting() ¶ protected
_requiresToExpressionCasting(array $types): array
返回一个数组,其中包含作为参数传递的类型名称列表中需要将值强制转换为表达式的类型。
参数
-
array
$types 类型名称列表
返回
数组
add() ¶ public
add(Cake\Database\ExpressionInterface|array|string $conditions, array<string, string> $types = [], bool $prepend = false): $this
为函数调用添加一个或多个参数。
参数
-
Cake\Database\ExpressionInterface|array|string
$conditions 要传递给函数的参数列表。如果关联,则键将在值为 'literal' 时用作参数
-
array<string, string>
$types optional 要与传递的参数关联的类型的关联数组
-
bool
$prepend optional 是否附加到参数列表的开头或结尾
返回
$this
另请参阅
and() ¶ public
and(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): static
返回一个新的 QueryExpression 对象,其中包含传递的所有条件,并将连接设置为“AND”。
参数
-
Cake\Database\ExpressionInterfaceClosure|array|string
$conditions 要与 AND 连接
-
array<string, string>
$types optional 指向值的类型的字段的关联数组,这些值正在传递。用于将值正确绑定到语句。
返回
static
between() ¶ public
between(Cake\Database\ExpressionInterface|string $field, mixed $from, mixed $to, string|null $type = null): $this
以“field BETWEEN from AND to”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要比较值的范围内的字段名称。
-
mixed
$from 范围的初始值。
-
mixed
$to 比较范围中的结束值。
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
case() ¶ public
case(Cake\Database\ExpressionInterface|object|scalar|null $value = null, string|null $type = null): Cake\Database\Expression\CaseStatementExpression
返回一个新的 case 表达式对象。
当设置一个值时,生成的语法是 CASE case_value WHEN when_value ... END
(简单 case),其中 when_value
与 case_value
比较。
当未设置值时,生成的语法是 CASE WHEN when_conditions ... END
(搜索 case),其中条件包含比较。
请注意,null
是一个有效的 case 值,因此只有当您确实想要创建简单的 case 表达式变体时才应将其传递!
参数
-
Cake\Database\ExpressionInterface|object|scalar|null
$value optional case 值。
-
string|null
$type optional case 值类型。如果未提供类型,则将尝试从值推断出类型。
返回
Cake\Database\Expression\CaseStatementExpression
eq() ¶ public
eq(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field = value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。如果它以 "[]" 结尾,并且值为数组,则将创建多个占位符,每个数组中的值一个。
返回
$this
equalFields() ¶ public
equalFields(string $leftField, string $rightField): $this
使用标识符包装构建相等条件或赋值。
参数
-
string
$leftField 左侧连接条件字段名。
-
string
$rightField 右侧连接条件字段名。
返回
$this
exists() ¶ public
exists(Cake\Database\ExpressionInterface $expression): $this
以“EXISTS (...)”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface
$expression 内部查询
返回
$this
filter() ¶ public
filter(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): $this
向 FILTER 子句添加条件。条件与 Query::where()
的格式相同。
参数
-
Cake\Database\ExpressionInterfaceClosure|array|string
$conditions 要过滤的条件。
-
array<string, string>
$types optional 用于将值绑定到查询的类型名称的关联数组
返回
$this
另请参阅
frame() ¶ public
frame(string $type, Cake\Database\ExpressionInterface|string|int|null $startOffset, string $startDirection, Cake\Database\ExpressionInterface|string|int|null $endOffset, string $endDirection): $this
向窗口添加一个帧。
如果您需要简单的“BETWEEN offset PRECEDING and offset FOLLOWING”框架,请使用 range()
、rows()
或 groups()
帮助器。
您可以为框架的开始和结束指定任何方向。
对于 $startOffset
和 $endOffset
0
- 'CURRENT ROW'null
- 'UNBOUNDED'
参数
-
string
$type -
Cake\Database\ExpressionInterface|string|int|null
$startOffset -
string
$startDirection -
Cake\Database\ExpressionInterface|string|int|null
$endOffset -
string
$endDirection
返回
$this
getDefaultTypes() ¶ public
getDefaultTypes(): array<int|string, string>
获取当前类型映射的默认类型。
返回
array<int|string, string>
getWindow() ¶ protected
getWindow(): Cake\Database\Expression\WindowExpression
返回或为函数创建 WindowExpression。
返回
Cake\Database\Expression\WindowExpression
groups() ¶ public
groups(int|null $start, int|null $end = 0): $this
向窗口添加一个简单的组帧。
参见 range()
获取更多信息。
参数
-
int|null
$start -
int|null
$end optional
返回
$this
gt() ¶ public
gt(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field > value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
gte() ¶ public
gte(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field >= value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
hasNestedExpression() ¶ public
hasNestedExpression(): bool
如果此表达式包含任何其他嵌套的 ExpressionInterface 对象,则返回 true。
返回
bool
in() ¶ public
in(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
以“field IN (value1, value2)”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
Cake\Database\ExpressionInterface|array|string
$values 与 $field 比较的绑定值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
isNotNull() ¶ public
isNotNull(Cake\Database\ExpressionInterface|string $field): $this
以“field IS NOT NULL”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要测试是否为非空的数据库字段
返回
$this
isNull() ¶ public
isNull(Cake\Database\ExpressionInterface|string $field): $this
以“field IS NULL”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要测试是否为空的数据库字段
返回
$this
iterateParts() ¶ public
iterateParts(Closure $callback): $this
为构成此表达式的每个部分执行回调。
回调需要返回一个值,该值将替换当前访问的部分。如果回调返回 null,则该部分将完全从该表达式中丢弃。
回调函数将接收每个条件作为第一个参数,以及键作为第二个参数。可以将第二个参数声明为引用传递,这将使您能够更改修改后的部分所存储的键。
参数
-
Closure
$callback 要为每个部分运行的回调
返回
$this
like() ¶ public
like(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field LIKE value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
lt() ¶ public
lt(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field < value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
lte() ¶ public
lte(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field <= value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
not() ¶ public
not(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): $this
向树的此级别添加一个新的条件集,并通过在前面添加一个 NOT 来否定最终结果,它将看起来像“NOT ( (condition1) AND (conditions2) )”连接取决于当前为此对象配置的连接。
参数
-
Cake\Database\ExpressionInterfaceClosure|array|string
$conditions 要添加和取反
-
array<string, string>
$types optional 指向值的类型的字段的关联数组,这些值正在传递。用于将值正确绑定到语句。
返回
$this
notEq() ¶ public
notEq(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field != value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。如果它以 "[]" 结尾,并且值为数组,则将创建多个占位符,每个数组中的值一个。
返回
$this
notExists() ¶ public
notExists(Cake\Database\ExpressionInterface $expression): $this
以“NOT EXISTS (...)”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface
$expression 内部查询
返回
$this
notIn() ¶ public
notIn(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
以“field NOT IN (value1, value2)”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
Cake\Database\ExpressionInterface|array|string
$values 与 $field 比较的绑定值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
notInOrNull() ¶ public
notInOrNull(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
以“(field NOT IN (value1, value2) OR field IS NULL”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
Cake\Database\ExpressionInterface|array|string
$values 与 $field 比较的绑定值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
notLike() ¶ public
notLike(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
以“field NOT LIKE value”的形式向表达式对象添加一个新条件。
参数
-
Cake\Database\ExpressionInterface|string
$field 要与值比较的数据库字段
-
mixed
$value 要绑定到 $field 以进行比较的值
-
string|null
$type optional 使用类型映射配置的 $value 的类型名称。
返回
$this
or() ¶ public
or(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): static
返回一个新的 QueryExpression 对象,其中包含传递的所有条件,并将连接设置为“OR”。
参数
-
Cake\Database\ExpressionInterfaceClosure|array|string
$conditions 要使用 OR 连接
-
array<string, string>
$types optional 指向值的类型的字段的关联数组,这些值正在传递。用于将值正确绑定到语句。
返回
static
order() ¶ public
order(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields): $this
向窗口添加一个或多个排序子句。
参数
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string
$fields
返回
$this
orderBy() ¶ public
orderBy(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields): $this
向窗口添加一个或多个排序子句。
参数
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string
$fields
返回
$this
over() ¶ public
over(string|null $name = null): $this
添加一个空的 OVER()
窗口表达式或一个命名的窗口表达式。
参数
-
string|null
$name optional 窗口名称
返回
$this
partition() ¶ public
partition(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $partitions): $this
向窗口添加一个或多个分区表达式。
参数
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string
$partitions
返回
$this
range() ¶ public
range(Cake\Database\ExpressionInterface|string|int|null $start, Cake\Database\ExpressionInterface|string|int|null $end = 0): $this
在窗口中添加一个简单的范围框架。
$start
:
0
- 'CURRENT ROW'null
- 'UNBOUNDED PRECEDING'- 偏移量 - 'offset PRECEDING'
$end
:
0
- 'CURRENT ROW'null
- 'UNBOUNDED FOLLOWING'- 偏移量 - 'offset FOLLOWING'
如果您需要在帧开始处使用 'FOLLOWING' 或在帧结束处使用 'PRECEDING',请改用 frame()
。
参数
-
Cake\Database\ExpressionInterface|string|int|null
$start -
Cake\Database\ExpressionInterface|string|int|null
$end optional
返回
$this
rows() ¶ public
rows(int|null $start, int|null $end = 0): $this
在窗口中添加一个简单的行框架。
参见 range()
获取更多信息。
参数
-
int|null
$start -
int|null
$end optional
返回
$this
setConjunction() ¶ public
setConjunction(string $conjunction): $this
更改表达式树此级别的条件的连接。
参数
-
string
$conjunction 用于连接条件的值
返回
$this
setDefaultTypes() ¶ public
setDefaultTypes(array<int|string, string> $types): $this
覆盖实现对象中字段的默认类型映射。
如果您需要在查询中的多个函数/表达式之间共享类型映射,此方法很有用。
要添加默认值而不覆盖现有值,请使用 getTypeMap()->addDefaults()
参数
-
array<int|string, string>
$types 要设置的类型数组。
返回
$this
另请参阅
setName() ¶ public
setName(string $name): $this
设置要在该表达式中调用的 SQL 函数的名称。
参数
-
string
$name 函数的名称
返回
$this
setReturnType() ¶ public
setReturnType(string $type): $this
设置此对象将生成的值的类型。
参数
-
string
$type 要返回的类型的名称
返回
$this
setTypeMap() ¶ public
setTypeMap(Cake\Database\TypeMap|array $typeMap): $this
如果 $typeMap 是一个数组,则创建一个新的 TypeMap,否则将其替换为给定的 TypeMap。
参数
-
Cake\Database\TypeMap|array
$typeMap 如果为数组,则创建一个 TypeMap,否则设置给定的 TypeMap
返回
$this
sql() ¶ public
sql(Cake\Database\ValueBinder $binder): string
将 Node 转换为 SQL 字符串片段。
参数
-
Cake\Database\ValueBinder
$binder
返回
字符串
traverse() ¶ public
traverse(Closure $callback): $this
递归地遍历表达式树的每一层,递归地遍历表达式的每一部分,并执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
参数
-
Closure
$callback
返回
$this