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|null
Whether the CTE is materialized or not materialized.
-
$name protected
Cake\Database\Expression\IdentifierExpression
The CTE name.
-
$query protected
Cake\Database\ExpressionInterface|null
The CTE query definition.
-
$recursive protected
bool
Whether 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 callable passing as first parameter the instance of the expression currently being iterated.
Method Detail
__construct() ¶ public
__construct(string $name = '', Cake\Database\ExpressionInterface|Closure $query = null)
Constructor.
Parameters
-
string
$name optional The CTE name.
-
Cake\Database\ExpressionInterface|Closure
$query optional CTE query
field() ¶ public
field(Cake\Database\Expression\IdentifierExpression|array<Cake\Database\Expression\IdentifierExpression>|array<string>|string $fields): $this
Adds one or more fields (arguments) to the CTE.
Parameters
-
Cake\Database\Expression\IdentifierExpression|array<Cake\Database\Expression\IdentifierExpression>|array<string>|string
$fields Field names
Returns
$this
name() ¶ 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
$this
notMaterialized() ¶ public
notMaterialized(): $this
Sets this CTE as not materialized.
Returns
$this
query() ¶ public
query(Cake\Database\ExpressionInterface|Closure $query): $this
Sets the query for this CTE.
Parameters
-
Cake\Database\ExpressionInterface|Closure
$query CTE query
Returns
$this
sql() ¶ public
sql(Cake\Database\ValueBinder $binder): string
Converts the Node into a SQL string fragment.
Parameters
-
Cake\Database\ValueBinder
$binder
Returns
string
traverse() ¶ public
traverse(Closure $callback): $this
Iterates over each part of the expression recursively for every level of the expressions tree and executes the $callback callable passing as first parameter the instance of the expression currently being iterated.
Parameters
-
Closure
$callback
Returns
$this
Property Detail
$fields ¶ protected
The field names to use for the CTE.
Type
array<Cake\Database\Expression\IdentifierExpression>