类 CommonTableExpression
表示通用表表达式定义的表达式。
命名空间: Cake\Database\Expression
属性摘要
-
$fields protected
arrayCake\Database\Expression\IdentifierExpression>
用于 CTE 的字段名称。
-
$materialized protected
string|null
CTE 是否已物化。
-
$name protected
Cake\Database\Expression\IdentifierExpression
CTE 名称。
-
$query protected
Cake\Database\ExpressionInterface|null
CTE 查询定义。
-
$recursive protected
bool
CTE 是否是递归的。
方法摘要
-
__clone() public
克隆内部表达式对象。
-
__construct() public
构造函数。
-
field() public
向 CTE 添加一个或多个字段 (参数)。
-
isRecursive() public
获取此 CTE 是否是递归的。
-
materialized() public
将此 CTE 设置为已物化。
-
name() public
设置此 CTE 的名称。
-
notMaterialized() public
将此 CTE 设置为未物化。
-
query() public
设置此 CTE 的查询。
-
recursive() public
将此 CTE 设置为递归的。
-
sql() public
将节点转换为 SQL 字符串片段。
-
traverse() public
递归地遍历表达式的每个部分,对于表达式的树的每个级别,执行回调,并将当前正在迭代的表达式的实例作为第一个参数传递。
方法详情
__construct() ¶ public
__construct(string $name = '', Cake\Database\ExpressionInterfaceClosure|null $query = null)
构造函数。
参数
-
string
$name optional CTE 名称。
-
Cake\Database\ExpressionInterfaceClosure|null
$query optional CTE 查询
field() ¶ public
field(Cake\Database\Expression\IdentifierExpression|list<string>|arrayCake\Database\Expression\IdentifierExpression>|string $fields): $this
向 CTE 添加一个或多个字段 (参数)。
参数
-
Cake\Database\Expression\IdentifierExpression|list<string>|arrayCake\Database\Expression\IdentifierExpression>|string
$fields 字段名称
返回值
$this
name() ¶ public
name(string $name): $this
设置此 CTE 的名称。
这是你在 select、insert 等查询中引用表达式的名称。
参数
-
string
$name CTE 名称。
返回值
$this
query() ¶ public
query(Cake\Database\ExpressionInterfaceClosure $query): $this
设置此 CTE 的查询。
参数
-
Cake\Database\ExpressionInterfaceClosure
$query CTE 查询
返回值
$this
sql() ¶ public
sql(Cake\Database\ValueBinder $binder): string
将节点转换为 SQL 字符串片段。
参数
-
Cake\Database\ValueBinder
$binder
返回值
string
traverse() ¶ public
traverse(Closure $callback): $this
递归地遍历表达式的每个部分,对于表达式的树的每个级别,执行回调,并将当前正在迭代的表达式的实例作为第一个参数传递。
参数
-
Closure
$callback
返回值
$this