PHP Class atk4\data\Field

Inheritance: use trait atk4\core\TrackableTrait
Show file Open project: atk4/data

Public Properties

Property Type Description
$actual string | null Actual field name.
$dateTimeClass For example, 'DateTime', 'Carbon' etc.
$dateTimeZoneClass For example, 'DateTimeZone', 'Carbon' etc.
$default mixed Default value of field.
$enum array | null For several types enum can provide list of available options.
$join Join | null Join object.
$mandatory boolean | string Can contain error message for UI.
$never_persist boolean Setting this to true will never actually load or store the field in the database. It will action as normal, but will be skipped by load/iterate/update/insert.
$never_save boolean Setting this to true will never actually store the field in the database. It will action as normal, but will be skipped by update/insert.
$persist_format string For example, for date it can be 'Y-m-d', for datetime - 'Y-m-d H:i:s' etc.
$persist_timezone string For example, 'IST', 'UTC', 'Europe/Riga' etc.
$read_only boolean For example, expressions are read only.
$serialize null | boolean | array Value can be array [$encode_callback, $decode_callback].
$system boolean Is it system field? System fields will be always loaded and saved.
$type string Values are: 'string', 'boolean', 'integer', 'money', 'float', 'date', 'datetime', 'time', 'array', 'object'. Can also be set to unspecified type for your own custom handling.
$typecast null | boolean | array Value can be array [$typecast_save_callback, $typecast_load_callback].
$ui array Array with UI flags like editable, visible and hidden.

Public Methods

Method Description
__construct ( array $defaults = [] ) Constructor. You can pass field properties as array.
__debugInfo ( ) : array Returns array with useful debug info for var_dump.
get ( ) : mixed Returns field value.
isEditable ( ) : boolean Returns if field should be editable in UI.
isHidden ( ) : boolean Returns if field should be hidden in UI.
isVisible ( ) : boolean Returns if field should be visible in UI.
normalize ( mixed $value ) : mixed Depending on the type of a current field, this will perform some normalization for strict types.
set ( mixed $value ) Sets field value.

Method Details

__construct() public method

Constructor. You can pass field properties as array.
public __construct ( array $defaults = [] )
$defaults array

__debugInfo() public method

Returns array with useful debug info for var_dump.
public __debugInfo ( ) : array
return array

get() public method

Returns field value.
public get ( ) : mixed
return mixed

isEditable() public method

Returns if field should be editable in UI.
public isEditable ( ) : boolean
return boolean

isHidden() public method

Returns if field should be hidden in UI.
public isHidden ( ) : boolean
return boolean

isVisible() public method

Returns if field should be visible in UI.
public isVisible ( ) : boolean
return boolean

normalize() public method

Depending on the type of a current field, this will perform some normalization for strict types.
public normalize ( mixed $value ) : mixed
$value mixed
return mixed

set() public method

Sets field value.
public set ( mixed $value )
$value mixed

Property Details

$actual public property

Actual field name.
public string|null $actual
return string | null

$dateTimeClass public property

For example, 'DateTime', 'Carbon' etc.
public $dateTimeClass

$dateTimeZoneClass public property

For example, 'DateTimeZone', 'Carbon' etc.
public $dateTimeZoneClass

$default public property

Default value of field.
public mixed $default
return mixed

$enum public property

For several types enum can provide list of available options.
public array|null $enum
return array | null

$join public property

Join object.
public Join,atk4\data|null $join
return Join | null

$mandatory public property

Can contain error message for UI.
public bool|string $mandatory
return boolean | string

$never_persist public property

Setting this to true will never actually load or store the field in the database. It will action as normal, but will be skipped by load/iterate/update/insert.
public bool $never_persist
return boolean

$never_save public property

Setting this to true will never actually store the field in the database. It will action as normal, but will be skipped by update/insert.
public bool $never_save
return boolean

$persist_format public property

For example, for date it can be 'Y-m-d', for datetime - 'Y-m-d H:i:s' etc.
public string $persist_format
return string

$persist_timezone public property

For example, 'IST', 'UTC', 'Europe/Riga' etc.
public string $persist_timezone
return string

$read_only public property

For example, expressions are read only.
public bool $read_only
return boolean

$serialize public property

Value can be array [$encode_callback, $decode_callback].
public null|bool|array $serialize
return null | boolean | array

$system public property

Is it system field? System fields will be always loaded and saved.
public bool $system
return boolean

$type public property

Values are: 'string', 'boolean', 'integer', 'money', 'float', 'date', 'datetime', 'time', 'array', 'object'. Can also be set to unspecified type for your own custom handling.
public string $type
return string

$typecast public property

Value can be array [$typecast_save_callback, $typecast_load_callback].
public null|bool|array $typecast
return null | boolean | array

$ui public property

Array with UI flags like editable, visible and hidden.
public array $ui
return array