Documentation

Update extends BasicUpdateAction
in package
uses RolePermissionSaveTrait

Update one or more $ENTITY with new values.

Use the where clause (required) to select them.

Table of Contents

Properties

$_debugOutput  : mixed
$_actionName  : string
$_entityName  : string
$chain  : array<string|int, mixed>
Additional api requests - will be called once per result.
$checkPermissions  : bool
Whether to enforce acl permissions based on the current user.
$debug  : bool
Add debugging info to the api result.
$language  : string
Preferred language (optional)
$limit  : int
Maximum number of $ENTITIES to return.
$offset  : int
Zero-based index of first $ENTITY to return.
$orderBy  : array<string|int, mixed>
Array of field(s) to use in ordering the results.
$reload  : bool
Reload $ENTITIES after saving.
$values  : array<string|int, mixed>
Field values to update.
$version  : int
Api version number; cannot be changed.
$where  : array<string|int, mixed>
Criteria for selecting items to update.
$_arrayStorage  : array<string|int, mixed>
$_entityFields  : array<string|int, mixed>
$_id  : int
$_paramInfo  : array<string|int, mixed>
$_reflection  : ReflectionClass
$setter  : callable

Methods

__call()  : static|mixed
Magic function to provide automatic getter/setter for params.
__construct()  : mixed
BasicUpdateAction constructor.
__set()  : mixed
Strictly enforce api parameters
_run()  : mixed
addChain()  : $this
addClause()  : $this
Adds one or more AND/OR/NOT clause groups
addOrderBy()  : $this
Adds to the orderBy clause
addValue()  : $this
Add an item to the values array.
addWhere()  : $this
entityFields()  : array<string|int, mixed>
Returns schema fields for this entity & action.
evaluateCondition()  : bool
This function is used internally for evaluating field annotations.
execute()  : Result
Invoke api call.
getActionName()  : string
getChain()  : array<string|int, mixed>
getCheckPermissions()  : bool
getDebug()  : bool
getEntityName()  : string
getLanguage()  : string|null
getLimit()  : int
getOffset()  : int
getOrderBy()  : array<string|int, mixed>
getParamInfo()  : array<string|int, mixed>
Get documentation for one or all params
getParams()  : array<string|int, mixed>
Serialize this object's params into an array
getPermissions()  : array<string|int, mixed>
getReload()  : bool
getValue()  : mixed|null
Retrieve a single value, transforming pseudoconstants as necessary
getValues()  : array<string|int, mixed>
getValues()  : array<string|int, mixed>
getWhere()  : array<string|int, mixed>
offsetExists()  : bool
offsetGet()  : mixed
offsetSet()  : void
offsetUnset()  : void
paramExists()  : bool
reflect()  : ReflectionClass
setChain()  : $this
setCheckPermissions()  : $this
setDebug()  : $this
setLanguage()  : $this
setLimit()  : $this
setOffset()  : $this
setOrderBy()  : $this
setReload()  : $this
setValues()  : $this
Overwrite all values
setValues()  : $this
setVersion()  : $this
setWhere()  : $this
addCallbackToDebugOutput()  : mixed
When in debug mode, this logs the callback function being used by a Basic*Action class.
checkRequiredFields()  : array<string|int, mixed>
Validates required fields for actions which create a new object.
formatWriteValues()  : mixed
Replaces pseudoconstants in input values
getBatchAction()  : AbstractGetAction
Get an API action object which resolves the list of records for this batch.
getBatchRecords()  : array<string|int, mixed>
Get a list of records for this batch.
getLanguageOptions()  : array<string|int, mixed>
Get available preferred languages.
getMagicProperties()  : array<string|int, mixed>
Get a list of class properties for which magic methods are supported.
getParamDefaults()  : array<string|int, mixed>
getSelect()  : array<string|int, string>
Determines what fields will be returned by getBatchRecords
updateRecords()  : array<string|int, mixed>
validateValues()  : mixed
whereClauseToString()  : string
Produces a human-readable where clause, for the reading enjoyment of you humans.
writeRecord()  : array<string|int, mixed>
This Basic Update class can be used in one of two ways:

Properties

$chain

Additional api requests - will be called once per result.

protected array<string|int, mixed> $chain = []

Keys can be any string - this will be the name given to the output.

You can reference other values in the api results in this call by prefixing them with $.

For example, you could create a contact and place them in a group by chaining the GroupContact api to the Contact api:

Contact::create()
  ->setValue('first_name', 'Hello')
  ->addChain('add_a_group', GroupContact::create()
    ->setValue('contact_id', '$id')
    ->setValue('group_id', 123)
  )

This will substitute the id of the newly created contact with $id.

$checkPermissions

Whether to enforce acl permissions based on the current user.

protected bool $checkPermissions = TRUE

Setting to FALSE will disable permission checks and override ACLs. In REST/javascript this cannot be disabled.

$debug

Add debugging info to the api result.

protected bool $debug = FALSE

When enabled, $result->debug will be populated with information about the api call, including sql queries executed.

Note: with checkPermissions enabled, debug info will only be returned if the user has "view debug output" permission.

$language

Preferred language (optional)

protected string $language

This option will notify major localization subsystems (ts(), multilingual, etc) about which locale should be used for composing/formatting messaging.

This indicates the preferred language. The effective language is determined by Civi\Core\Locale::negotiate($preferredLanguage).

Tags
optionsCallback

getLanguageOptions

$limit

Maximum number of $ENTITIES to return.

protected int $limit = 0

Defaults to 0 - unlimited.

Note: the Api Explorer sets this to 25 by default to avoid timeouts. Change or remove this default for your application code.

$offset

Zero-based index of first $ENTITY to return.

protected int $offset = 0

Defaults to 0 - first $ENTITY found.

$orderBy

Array of field(s) to use in ordering the results.

protected array<string|int, mixed> $orderBy = []

Defaults to id ASC

$example->addOrderBy('sort_name', 'ASC')

$reload

Reload $ENTITIES after saving.

protected bool $reload = FALSE

Setting to true will load complete records and return them as the api result. If false the api usually returns only the fields specified to be updated.

$values

Field values to update.

protected array<string|int, mixed> $values = []
Tags
required

$version

Api version number; cannot be changed.

protected int $version = 4

$where

Criteria for selecting items to update.

protected array<string|int, mixed> $where = []

Required if no id is supplied in values.

$_arrayStorage

private array<string|int, mixed> $_arrayStorage = []

$setter

private callable $setter

Function(array $item, BasicUpdateAction $thisAction): array

Methods

__call()

Magic function to provide automatic getter/setter for params.

public __call(mixed $name, mixed $arguments) : static|mixed
Parameters
$name : mixed
$arguments : mixed
Tags
throws
CRM_Core_Exception
Return values
static|mixed

__construct()

BasicUpdateAction constructor.

public __construct(string $entityName, string $actionName[, callable $setter = NULL ]) : mixed
Parameters
$entityName : string
$actionName : string
$setter : callable = NULL

__set()

Strictly enforce api parameters

public __set(mixed $name, mixed $value) : mixed
Parameters
$name : mixed
$value : mixed
Tags
throws
Exception

addChain()

public addChain(string $name, AbstractAction $apiRequest[, string|int|array<string|int, mixed> $index = NULL ]) : $this
Parameters
$name : string

Unique name for this chained request

$apiRequest : AbstractAction
$index : string|int|array<string|int, mixed> = NULL

See civicrm_api4() for documentation of $index param

Return values
$this

addClause()

Adds one or more AND/OR/NOT clause groups

public addClause(string $operator, mixed $condition1) : $this
Parameters
$operator : string
$condition1 : mixed

... $conditionN Either a nested array of arguments, or a variable number of arguments passed to this function.

Tags
throws
CRM_Core_Exception
Return values
$this

addOrderBy()

Adds to the orderBy clause

public addOrderBy(string $fieldName[, string $direction = 'ASC' ]) : $this
Parameters
$fieldName : string
$direction : string = 'ASC'
Return values
$this

addValue()

Add an item to the values array.

public addValue(string $fieldName, mixed $value) : $this
Parameters
$fieldName : string
$value : mixed
Return values
$this

addWhere()

public addWhere(string $fieldName, string $op[, mixed $value = NULL ]) : $this
Parameters
$fieldName : string
$op : string
$value : mixed = NULL
Tags
throws
CRM_Core_Exception
Return values
$this

entityFields()

Returns schema fields for this entity & action.

public entityFields() : array<string|int, mixed>

Here we bypass the api wrapper and run the getFields action directly. This is because we DON'T want the wrapper to check permissions as this is an internal op.

Tags
see
GetFields
throws
CRM_Core_Exception
Return values
array<string|int, mixed>

evaluateCondition()

This function is used internally for evaluating field annotations.

public static evaluateCondition(string $expr, array<string|int, mixed> $vars) : bool

It should never be passed raw user input.

Parameters
$expr : string

Conditional in php format e.g. $foo > $bar

$vars : array<string|int, mixed>

Variable name => value

Tags
throws
CRM_Core_Exception
throws
Exception
Return values
bool

getActionName()

public getActionName() : string
Return values
string

getChain()

public getChain() : array<string|int, mixed>
Return values
array<string|int, mixed>

getCheckPermissions()

public getCheckPermissions() : bool
Return values
bool

getEntityName()

public getEntityName() : string
Return values
string

getLanguage()

public getLanguage() : string|null
Return values
string|null

getOrderBy()

public getOrderBy() : array<string|int, mixed>
Return values
array<string|int, mixed>

getParamInfo()

Get documentation for one or all params

public getParamInfo([string $param = NULL ]) : array<string|int, mixed>
Parameters
$param : string = NULL
Return values
array<string|int, mixed>

of arrays [description, type, default, (comment)]

getParams()

Serialize this object's params into an array

public getParams() : array<string|int, mixed>
Return values
array<string|int, mixed>

getPermissions()

public getPermissions() : array<string|int, mixed>
Return values
array<string|int, mixed>

getValue()

Retrieve a single value, transforming pseudoconstants as necessary

public getValue(string $fieldExpr) : mixed|null
Parameters
$fieldExpr : string
Return values
mixed|null

getValues()

public getValues() : array<string|int, mixed>
Return values
array<string|int, mixed>

getValues()

public getValues() : array<string|int, mixed>

Get field values.

Return values
array<string|int, mixed>

getWhere()

public getWhere() : array<string|int, mixed>
Return values
array<string|int, mixed>

offsetExists()

public offsetExists(mixed $offset) : bool
Parameters
$offset : mixed
Tags
inheritDoc
Return values
bool

offsetGet()

public & offsetGet(mixed $offset) : mixed
Parameters
$offset : mixed
Tags
inheritDoc
Attributes
#[ReturnTypeWillChange]

offsetSet()

public offsetSet(mixed $offset, mixed $value) : void
Parameters
$offset : mixed
$value : mixed
Tags
inheritDoc

offsetUnset()

public offsetUnset(mixed $offset) : void
Parameters
$offset : mixed
Tags
inheritDoc

paramExists()

public paramExists(string $param) : bool
Parameters
$param : string
Return values
bool

reflect()

public reflect() : ReflectionClass
Return values
ReflectionClass

setChain()

public setChain([array<string|int, mixed> $chain = ]) : $this
Parameters
$chain : array<string|int, mixed> =
Return values
$this

setCheckPermissions()

public setCheckPermissions(bool $checkPermissions) : $this
Parameters
$checkPermissions : bool
Return values
$this

setDebug()

public setDebug([bool $debug = ]) : $this

Enable/disable debug output

Parameters
$debug : bool =
Return values
$this

setLanguage()

public setLanguage([string|null $language = ]) : $this
Parameters
$language : string|null =
Return values
$this

setLimit()

public setLimit([int $limit = ]) : $this
Parameters
$limit : int =
Return values
$this

setOffset()

public setOffset([int $offset = ]) : $this
Parameters
$offset : int =
Return values
$this

setOrderBy()

public setOrderBy([array<string|int, mixed> $order = ]) : $this
Parameters
$order : array<string|int, mixed> =
Return values
$this

setReload()

public setReload([bool $reload = ]) : $this

Specify whether complete objects will be returned after saving.

Parameters
$reload : bool =
Return values
$this

setValues()

Overwrite all values

public setValues(array<string|int, mixed> $values) : $this
Parameters
$values : array<string|int, mixed>
Return values
$this

setValues()

public setValues([array<string|int, mixed> $values = ]) : $this

Set all field values from an array of key => value pairs.

Parameters
$values : array<string|int, mixed> =
Return values
$this

setWhere()

public setWhere([array<string|int, mixed> $wheres = ]) : $this
Parameters
$wheres : array<string|int, mixed> =
Return values
$this

addCallbackToDebugOutput()

When in debug mode, this logs the callback function being used by a Basic*Action class.

protected addCallbackToDebugOutput(callable $callable) : mixed
Parameters
$callable : callable

checkRequiredFields()

Validates required fields for actions which create a new object.

protected checkRequiredFields(mixed $values) : array<string|int, mixed>
Parameters
$values : mixed
Tags
throws
CRM_Core_Exception
Return values
array<string|int, mixed>

formatWriteValues()

Replaces pseudoconstants in input values

protected formatWriteValues(array<string|int, mixed> &$record) : mixed
Parameters
$record : array<string|int, mixed>
Tags
throws
CRM_Core_Exception

getBatchAction()

Get an API action object which resolves the list of records for this batch.

protected getBatchAction() : AbstractGetAction

This is similar to getBatchRecords(), but you may further refine the API call (e.g. selecting different fields or data-pages) before executing.

Return values
AbstractGetAction

getBatchRecords()

Get a list of records for this batch.

protected getBatchRecords() : array<string|int, mixed>
Return values
array<string|int, mixed>

getLanguageOptions()

Get available preferred languages.

protected getLanguageOptions() : array<string|int, mixed>
Return values
array<string|int, mixed>

getMagicProperties()

Get a list of class properties for which magic methods are supported.

protected static getMagicProperties() : array<string|int, mixed>
Return values
array<string|int, mixed>

List of supported properties, keyed by property name. Array(string $propertyName => bool $true).

getParamDefaults()

protected getParamDefaults() : array<string|int, mixed>
Return values
array<string|int, mixed>

getSelect()

Determines what fields will be returned by getBatchRecords

protected getSelect() : array<string|int, string>

Defaults to an entity's primary key(s), typically ['id']

Return values
array<string|int, string>

updateRecords()

protected updateRecords(array<string|int, mixed> $items) : array<string|int, mixed>
Parameters
$items : array<string|int, mixed>
Return values
array<string|int, mixed>

whereClauseToString()

Produces a human-readable where clause, for the reading enjoyment of you humans.

protected whereClauseToString([array<string|int, mixed> $whereClause = NULL ][, string $op = 'AND' ]) : string
Parameters
$whereClause : array<string|int, mixed> = NULL
$op : string = 'AND'
Return values
string

writeRecord()

This Basic Update class can be used in one of two ways:

protected writeRecord(array<string|int, mixed> $item) : array<string|int, mixed>
  1. Use this class directly by passing a callable ($setter) to the constructor.
  2. Extend this class and override this function.

Either way, this function should return an array representing the one modified object.

Parameters
$item : array<string|int, mixed>
Tags
throws
NotImplementedException
Return values
array<string|int, mixed>

        
On this page

Search results