类 ValuesExpression
一个表达式对象,用于保存要插入的值。
帮助生成具有正确占位符数量的 SQL,并将绑定值正确地插入语句中。
属性摘要
-
$_castedExpressions protected
bool
值是否已转换为表达式。
-
$_columns protected
array
要确保作为插入一部分的列的列表。
-
$_query protected
Cake\Database\Query|null
要用作值表达式的 Query 对象
-
$_typeMap protected
Cake\Database\TypeMap|null
-
$_values protected
array
要插入的值数组。
方法摘要
-
__construct() public
构造函数
-
_castToExpression() protected
如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,返回未修改的值。
-
_columnNames() protected
获取原始的列名。
-
_processExpressions() protected
转换需要转换为表达式的值
-
_requiresToExpressionCasting() protected
返回一个数组,其中包含在作为参数传递的类型名称列表中需要将值转换为表达式的类型。
-
add() public
添加要插入的数据行。
-
getColumns() public
获取要插入的列。
-
getDefaultTypes() public
获取当前类型映射的默认类型。
-
getQuery() public
获取要用于作为要计算以在表中插入记录的值表达式的 Query 对象。
-
getTypeMap() public
返回现有的类型映射。
-
getValues() public
获取要插入的值。
-
setColumns() public
设置要插入的列。
-
setDefaultTypes() public
覆盖实现对象中字段的默认类型映射。
-
setQuery() public
设置要用于作为要计算以在表中插入记录的值表达式的 Query 对象。
-
setTypeMap() public
如果 $typeMap 是一个数组,则创建一个新的 TypeMap,否则将其替换为给定的 TypeMap。
-
setValues() public
设置要插入的值。
-
sql() public
将节点转换为 SQL 字符串片段。
-
traverse() public
递归地遍历表达式的每个部分,对于表达树的每一级,执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
方法详情
__construct() ¶ public
__construct(array $columns, Cake\Database\TypeMap $typeMap)
构造函数
参数
-
array
$columns 将作为值一部分的列列表。
-
Cake\Database\TypeMap
$typeMap 列 -> 类型名称的字典
_castToExpression() ¶ protected
_castToExpression(mixed $value, string|null $type = null): mixed
如果类型类实现了 ExpressionTypeInterface,则有条件地将传递的值转换为 ExpressionInterface 对象。否则,返回未修改的值。
参数
-
mixed
$value 要转换为 ExpressionInterface 的值
-
string|null
$type optional 类型名称
返回值
mixed
_requiresToExpressionCasting() ¶ protected
_requiresToExpressionCasting(array $types): array
返回一个数组,其中包含在作为参数传递的类型名称列表中需要将值转换为表达式的类型。
参数
-
array
$types 类型名称列表
返回值
array
add() ¶ public
add(Cake\Database\Query|array $values): void
添加要插入的数据行。
参数
-
Cake\Database\Query|array
$values 要追加到插入中的数据数组,或用于执行 INSERT INTO .. SELECT 样式命令的查询
返回值
void
抛出
Cake\Database\Exception\DatabaseException
当混合使用数组 + Query 数据类型时。
getDefaultTypes() ¶ public
getDefaultTypes(): array<int|string, string>
获取当前类型映射的默认类型。
返回值
array<int|string, string>
getQuery() ¶ public
getQuery(): Cake\Database\Query|null
获取要用于作为要计算以在表中插入记录的值表达式的 Query 对象。
返回值
Cake\Database\Query|null
setColumns() ¶ public
setColumns(array $columns): $this
设置要插入的列。
参数
-
array
$columns 要插入的列的数组。
返回值
$this
setDefaultTypes() ¶ public
setDefaultTypes(array<int|string, string> $types): $this
覆盖实现对象中字段的默认类型映射。
如果您需要设置跨多个函数/表达式共享的类型映射,此方法很有用。
要添加默认值而不覆盖现有值,请使用 getTypeMap()->addDefaults()
参数
-
array<int|string, string>
$types 要设置的类型数组。
返回值
$this
另请参阅
setQuery() ¶ public
setQuery(Cake\Database\Query $query): $this
设置要用于作为要计算以在表中插入记录的值表达式的 Query 对象。
参数
-
Cake\Database\Query
$query 要设置的查询
返回值
$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
将节点转换为 SQL 字符串片段。
参数
-
Cake\Database\ValueBinder
$binder
返回值
string
traverse() ¶ public
traverse(Closure $callback): $this
递归地遍历表达式的每个部分,对于表达树的每一级,执行回调,将当前正在迭代的表达式的实例作为第一个参数传递。
参数
-
Closure
$callback
返回值
$this