Api3SelectQuery
class Api3SelectQuery extends SelectQuery
Constants
MAX_JOINS |
|
MAIN_TABLE_ALIAS |
|
Properties
protected string | $entity | from SelectQuery | |
$select | from SelectQuery | ||
$where | from SelectQuery | ||
$orderBy | from SelectQuery | ||
$limit | from SelectQuery | ||
$offset | from SelectQuery | ||
protected array | $selectFields | from SelectQuery | |
bool | $isFillUniqueFields | from SelectQuery | |
protected CRM_Utils_SQL_Select | $query | from SelectQuery | |
protected array | $joins | from SelectQuery | |
protected array | $apiFieldSpec | from SelectQuery | |
protected array | $entityFieldNames | from SelectQuery | |
protected array | $aclFields | from SelectQuery | |
protected string|bool | $checkPermissions | from SelectQuery | |
protected | $apiVersion |
Methods
Get join info for dynamically-joined fields (e.g. "entity_id", "option_group")
Joins onto a custom field
Fetch a field from the getFields list
Perform input validation on params that use the join syntax
Check permission to join onto another api entity
Get acl clause for an entity
No description
No description
No description
Details
in SelectQuery at line 98
__construct(string $entity, bool $checkPermissions)
in SelectQuery at line 122
array|int
run()
Build & execute the query and return results array
in SelectQuery at line 174
SelectQuery
merge(CRM_Utils_SQL_Select $sqlFragment)
in SelectQuery at line 194
protected array|null
addFkField($fkFieldName, $side)
Joins onto an fk field
Adds one or more joins to the query to make this field available for use in a clause.
Enforces permissions at the api level and by appending the acl clause for that entity to the join.
in SelectQuery at line 275
protected
getJoinInfo($fkField, $stack)
Get join info for dynamically-joined fields (e.g. "entity_id", "option_group")
in SelectQuery at line 303
protected array
addCustomField(array $customField, string $side, string $baseTable = self::MAIN_TABLE_ALIAS)
Joins onto a custom field
Adds a join to the query to make this field available for use in a clause.
at line 167
protected array|null
getField(string $fieldName)
Fetch a field from the getFields list
Searches by name, uniqueName, and api.aliases
in SelectQuery at line 329
protected
validateNestedInput($fieldName, $value)
Perform input validation on params that use the join syntax
Arguably this should be done at the api wrapper level, but doing it here provides a bit more consistency in that api permissions to perform the join are checked first.
in SelectQuery at line 350
protected bool
checkPermissionToJoin(string $entity, array $fieldStack)
Check permission to join onto another api entity
in SelectQuery at line 384
protected array
getAclClause(string $tableAlias, string $baoName, array $stack = [])
Get acl clause for an entity
in SelectQuery at line 408
protected
buildOrderBy()
Orders the query by one or more fields
in SelectQuery at line 442
join(string $side, string $tableName, string $tableAlias, array $conditions)
at line 38
protected
buildWhereClause()
in SelectQuery at line 463
protected
buildSelectFields()
Populate $this->selectFields