Class CommonTableExpression
An expression that represents a common table expression definition.
Property Summary
-
$fields protected
array<Cake\Database\Expression\IdentifierExpression>The field names to use for the CTE.
-
$materialized protected
string|nullWhether the CTE is materialized or not materialized.
-
$name protected
Cake\Database\Expression\IdentifierExpressionThe CTE name.
-
$query protected
Cake\Database\ExpressionInterface|nullThe CTE query definition.
-
$recursive protected
boolWhether the CTE is recursive.
Method Summary
-
__clone() public
Clones the inner expression objects.
-
__construct() public
Constructor.
-
field() public
Adds one or more fields (arguments) to the CTE.
-
isRecursive() public
Gets whether this CTE is recursive.
-
materialized() public
Sets this CTE as materialized.
-
name() public
Sets the name of this CTE.
-
notMaterialized() public
Sets this CTE as not materialized.
-
query() public
Sets the query for this CTE.
-
recursive() public
Sets this CTE as recursive.
-
sql() public
Converts the Node into a SQL string fragment.
-
traverse() public
Iterates over each part of the expression recursively for every level of the expressions tree and executes the callback, passing as first parameter the instance of the expression currently being iterated.
Method Detail
__construct() ¶ public
__construct(string $name = '', Cake\Database\ExpressionInterface|Closure|null $query = null)
Constructor.
Parameters
-
string$name optional The CTE name.
-
Cake\Database\ExpressionInterface|Closure|null$query optional CTE query
field() ¶ public
field(Cake\Database\Expression\IdentifierExpression|array<string>|array<Cake\Database\Expression\IdentifierExpression>|string $fields): $this
Adds one or more fields (arguments) to the CTE.
Parameters
-
Cake\Database\Expression\IdentifierExpression|array<string>|array<Cake\Database\Expression\IdentifierExpression>|string$fields Field names
Returns
$thisname() ¶ public
name(string $name): $this
Sets the name of this CTE.
This is the named you used to reference the expression in select, insert, etc queries.
Parameters
-
string$name The CTE name.
Returns
$thisnotMaterialized() ¶ public
notMaterialized(): $this
Sets this CTE as not materialized.
Returns
$thisquery() ¶ public
query(Cake\Database\ExpressionInterface|Closure $query): $this
Sets the query for this CTE.
Parameters
-
Cake\Database\ExpressionInterface|Closure$query CTE query
Returns
$thissql() ¶ public
sql(Cake\Database\ValueBinder $binder): string
Converts the Node into a SQL string fragment.
Parameters
-
Cake\Database\ValueBinder$binder
Returns
stringtraverse() ¶ public
traverse(Closure $callback): $this
Iterates over each part of the expression recursively for every level of the expressions tree and executes the callback, passing as first parameter the instance of the expression currently being iterated.
Parameters
-
Closure$callback
Returns
$thisProperty Detail
$fields ¶ protected
The field names to use for the CTE.
Type
array<Cake\Database\Expression\IdentifierExpression>