IdentityConditions
IdentityConditions
Responsibility: - Generate identity-scoped WHERE conditions based on runtime parameters - Constrain queries to a model’s identity columns (usually primary keys)
Design constraints: - Stateless builder: no side effects beyond stored Collection - Null-safe: absence of identity data yields no condition - PDO-safe: all values bound with generated placeholders
Output contract: - null → no identity constraint - [string, bind[], types[]] → Phalcon-compatible condition payload
This trait intentionally does NOT: - Perform authorization decisions - Infer identity values implicitly - Throw when identity data is missing
Consumers decide how absence of identity affects query semantics.
- Full name:
\PhalconKit\Mvc\Controller\Traits\Query\Conditions\IdentityConditions
Properties
identityConditions
array|Collection of named identity conditions.
protected ?\Phalcon\Support\Collection $identityConditions
Shape: [ 'default' => array|string|null ]
Methods
initializeIdentityConditions
Initializes identity conditions.
public initializeIdentityConditions(): void
Called during controller/query bootstrap. Always registers a default condition, which may resolve to null.
setIdentityConditions
Explicit setter.
public setIdentityConditions(array|\Phalcon\Support\Collection|null $identityConditions): void
Allows higher-level components to override identity semantics.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$identityConditions | array|\Phalcon\Support\Collection|null |
getIdentityConditions
Returns the registered identity conditions collection.
public getIdentityConditions(): ?\Phalcon\Support\Collection
defaultIdentityCondition
Resolves the default identity condition.
public defaultIdentityCondition(): array|string|null
Uses request/query parameters as the identity source.
buildIdentityConditionFromData
Builds an identity condition from arbitrary data.
public buildIdentityConditionFromData(array $data, array|null $columns = null): array|null
Algorithm: 1. Resolve identity columns (defaults to primary key attributes) 2. For each column: - Skip if missing or null in input data - Generate a unique bind placeholder - Append strict equality predicate 3. AND-coalesce predicates
Failure modes: - No identity columns → null - No matching data provided → null
Parameters:
| Parameter | Type | Description |
|---|---|---|
$data | array | Input data (typically request params) |
$columns | array|null | Explicit identity columns override |
Return Value:
[ string $condition, array $bind, array $bindTypes ]
getIdentityColumns
Returns the identity columns for the current model.
public getIdentityColumns(): array
Default strategy: - Use primary key attributes
Override point: - Models with composite or non-PK identity semantics