Class CommonTableExpression
An expression that represents a common table expression definition.
Property Summary
-
$fields protected
arrayCake\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, passing as first parameter the instance of the expression currently being iterated.
Method Detail
__construct() ¶ public
__construct(string $name = '', Cake\Database\ExpressionInterfaceClosure|null $query = null)
Constructor.
Parameters
-
string
$name optional The CTE name.
-
Cake\Database\ExpressionInterfaceClosure|null
$query optional CTE query
field() ¶ public
field(Cake\Database\Expression\IdentifierExpression|arrayCake\Database\Expression\IdentifierExpression>|array<string>|string $fields): $this
Adds one or more fields (arguments) to the CTE.
Parameters
-
Cake\Database\Expression\IdentifierExpression|arrayCake\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\ExpressionInterfaceClosure $query): $this
Sets the query for this CTE.
Parameters
-
Cake\Database\ExpressionInterfaceClosure
$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, 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
arrayCake\Database\Expression\IdentifierExpression>