Model in package implements ModelInterface
Class Model.
Interfaces, Classes, Traits and Enums
- ModelInterface
- Interface ModelInterface.
Table of Contents
- $allowedFields : array<string|int, mixed>
- Allowed columns for INSERT and UPDATE.
- $autoTimestamps : bool
- Auto set timestamp fields.
- $cacheActive : bool
- $cacheDataNotFound : int|string
- $cacheInstance : string
- $cacheTtl : int
- $columnCase : string
- $connectionRead : string
- Database connection instance name for read operations.
- $connectionWrite : string
- Database connection instance name for write operations.
- $fieldCreated : string
- The timestamp field for 'created at' time when $autoTimestamps is true.
- $fieldUpdated : string
- The timestamp field for 'updated at' time when $autoTimestamps is true.
- $languageInstance : string
- $models : array<string|int, mixed>
- $pager : Pager
- The Pager instance.
- $pagerAllowedQueries : array<string|int, mixed>|null
- $pagerQuery : string
- $pagerUrl : string
- Pager URL.
- $pagerView : string
- Default pager view.
- $primaryKey : string
- Table Primary Key.
- $protectPrimaryKey : bool
- Prevents Primary Key changes on INSERT and UPDATE.
- $returnType : string
- Fetched item return type.
- $table : string
- Table name.
- $timestampFormat : string
- The timestamp format used on database write operations.
- $validation : Validation
- The Model Validation instance.
- $validationLabels : array<string|int, mixed>
- Validation field labels.
- $validationMessages : array<string|int, mixed>
- Validation error messages.
- $validationRules : array<string|int, mixed>
- Validation rules.
- $validationValidators : array<string|int, mixed>
- Validation Validators.
- __call() : mixed
- count() : int
- A basic function to count rows in the table.
- create() : false|int|string
- Insert a new row.
- createBy() : false|int|string
- Insert a new row and return the inserted column value.
- createById() :
- delete() : false|int|string
- Delete based on Primary Key.
- deleteBy() : false|int|string
- Delete based on column value.
- deleteById() :
- find() : Entity|array<string|int, mixed>|array<string|int, float>|array<string|int, int>|array<string|int, null>|stdClass|array<string|int, string>|null
- Alias of {@see Model::read()}.
- findAll() : array<int, \Framework\MVC\Entity|array|\stdClass>
- Alias of {@see Model::list()}.
- findBy() : Entity|array<string, float|int|string|null>|stdClass|null
- Alias of {@see Model::readBy()}.
- findById() :
- get() : T
- Get same Model instance.
- getErrors() : array<string, string>
- Get Validation errors.
- getPager() : Pager
- Get the Pager.
- getValidationMessages() : array<string, array<string, string>>
- getValidationValidators() : array<int, string>
- list() : array<int, \Framework\MVC\Entity|array|\stdClass>
- List rows, optionally with limit and offset.
- paginate() : array<int, \Framework\MVC\Entity|array|\stdClass>
- A basic function to paginate all rows of the table.
- read() : Entity|array<string, float|int|string|null>|stdClass|null
- Read a row based on Primary Key.
- readBy() : Entity|array<string, float|int|string|null>|stdClass|null
- Read a row by column name and value.
- readById() :
- replace() : false|int|string
- Replace based on Primary Key and return the number of affected rows.
- replaceBy() : false|int|string
- Replace based on column value and return the number of affected rows.
- replaceById() :
- save() : false|int|string
- Save a row. Update if the Primary Key is present, otherwise insert a new row.
- update() : false|int|string
- Update based on Primary Key and return the number of affected rows.
- updateBy() : false|int|string
- Update based on column value and return the number of affected rows.
- updateById() :
- checkMysqliException() : void
- checkPrimaryKey() : void
- convertCase() : string
- Convert a value to specific case.
- filterAllowedFields() : array<string, T>
- getAllowedFields() : array<int, string>
- getCache() : Cache
- getCacheDataNotFound() : int|string
- getCacheInstance() : string
- getCacheKey() : string
- getCacheTtl() : int
- getConnectionRead() : string
- getConnectionWrite() : string
- getDatabaseToRead() : Database
- getDatabaseToWrite() : Database
- getFieldCreated() : string
- getFieldUpdated() : string
- getLanguage() : Language
- getLanguageInstance() : string
- getPagerAllowedQueries() : array<string|int, string>|null
- Get allowed queries to be used in the Pager.
- getPagerQuery() : string|null
- Get the custom query to be used in the Pager.
- getPagerUrl() : string|null
- Get the custom URL to be used in the Pager.
- getPagerView() : string|null
- Get the custom view to be used in the Pager.
- getPrimaryKey() : string
- getReturnType() : string
- getTable() : string
- getTimestamp() : string
- Used to auto set the timestamp fields.
- getTimestampFormat() : string
- getValidation() : Validation
- getValidationLabels() : array<string, string>
- getValidationRules() : array<string, string[]|string>
- isAutoTimestamps() : bool
- isCacheActive() : bool
- isProtectPrimaryKey() : bool
- makeArray() : array<string, mixed>
- makeEntity() : Entity|array<string, float|int|string|null>|stdClass
- makePageLimitAndOffset() : array<int, int|null>
- makeTableName() : string
- readRow() : array<string, float|int|string|null>|null
- readWithCache() : Entity|array<string, float|int|string|null>|stdClass|null
- sanitizePageNumber() : int
- setDuplicateEntryError() : void
- Set "Duplicate entry" as 'unique' error in the Validation.
- setPager() : static
- Set the Pager.
- timezone() : DateTimeZone
- Get the timezone from database write connection config. As fallback, uses the UTC timezone.
- updateCachedRow() : void
Properties
$allowedFields
Allowed columns for INSERT and UPDATE.
protected array<string|int, mixed> $allowedFields
$autoTimestamps
Auto set timestamp fields.
protected bool $autoTimestamps = false
$cacheActive
protected bool $cacheActive = false
$cacheDataNotFound
protected int|string $cacheDataNotFound = 0
$cacheInstance
protected string $cacheInstance = 'default'
$cacheTtl
protected int $cacheTtl = 60
$columnCase
protected string $columnCase = 'camel'
$connectionRead
Database connection instance name for read operations.
protected string $connectionRead = 'default'
$connectionWrite
Database connection instance name for write operations.
protected string $connectionWrite = 'default'
$fieldCreated
The timestamp field for 'created at' time when $autoTimestamps is true.
protected string $fieldCreated = 'createdAt'
$fieldUpdated
The timestamp field for 'updated at' time when $autoTimestamps is true.
protected string $fieldUpdated = 'updatedAt'
$languageInstance
protected string $languageInstance = 'default'
$models
protected static array<string|int, mixed> $models = []
$pager
The Pager instance.
protected Pager $pager
Instantiated when calling the paginate method.
Tags
$pagerAllowedQueries
protected array<string|int, mixed>|null $pagerAllowedQueries = null
$pagerQuery
protected string $pagerQuery
$pagerUrl
Pager URL.
protected string $pagerUrl
$pagerView
Default pager view.
protected string $pagerView
$primaryKey
Table Primary Key.
protected string $primaryKey = 'id'
$protectPrimaryKey
Prevents Primary Key changes on INSERT and UPDATE.
protected bool $protectPrimaryKey = true
$returnType
Fetched item return type.
protected string $returnType = \stdClass::class
Array, object or the classname of an Entity instance.
Tags
$table
Table name.
protected string $table
$timestampFormat
The timestamp format used on database write operations.
protected string $timestampFormat = 'Y-m-d H:i:s'
$validation
The Model Validation instance.
protected Validation $validation
$validationLabels
Validation field labels.
protected array<string|int, mixed> $validationLabels
$validationMessages
Validation error messages.
protected array<string|int, mixed> $validationMessages
$validationRules
Validation rules.
protected array<string|int, mixed> $validationRules
Tags
$validationValidators
Validation Validators.
protected array<string|int, mixed> $validationValidators = [\Framework\MVC\Validator::class, \Framework\Validation\FilesValidator::class]
Methods
__call()
public __call(string $method, array<string, mixed> $arguments) : mixed
Parameters
- $method : string
- $arguments : array<string, mixed>
Return values
mixed —count()
A basic function to count rows in the table.
public count([array<string|int, array<string|int, mixed>> $where = [] ]) : int
Parameters
- $where : array<string|int, array<string|int, mixed>> = []
-
Array in this format:
[['id', '=', 25]]
Tags
Return values
int —create()
Insert a new row.
public create(Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The LAST_INSERT_ID() on success or false if validation fail
createBy()
Insert a new row and return the inserted column value.
public createBy(string $column, Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $column : string
-
Column name
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The value from the column data or false if validation fail
createById()
public createById(Entity|array<string|int, mixed>|stdClass $data) :
Create a new row and return the id.
Parameters
- $data : Entity|array<string|int, mixed>|stdClass
Return values
—delete()
Delete based on Primary Key.
public delete(int|string $id) : false|int|string
Parameters
- $id : int|string
Return values
false|int|string —The number of affected rows
deleteBy()
Delete based on column value.
public deleteBy(string $column, int|string $value) : false|int|string
Parameters
- $column : string
- $value : int|string
Return values
false|int|string —The number of affected rows
deleteById()
public deleteById(int|string $id) :
Delete rows by id.
Parameters
- $id : int|string
Return values
—find()
Alias of {@see Model::read()}.
public find(int|string $id) : Entity|array<string|int, mixed>|array<string|int, float>|array<string|int, int>|array<string|int, null>|stdClass|array<string|int, string>|null
Parameters
- $id : int|string
Return values
Entity|array<string|int, mixed>|array<string|int, float>|array<string|int, int>|array<string|int, null>|stdClass|array<string|int, string>|null —findAll()
Alias of {@see Model::list()}.
public findAll([int|null $limit = null ][, int|null $offset = null ]) : array<int, \Framework\MVC\Entity|array|\stdClass>
Find all rows with limit and offset.
Parameters
- $limit : int|null = null
- $offset : int|null = null
Return values
array<int, \Framework\MVC\Entity|array|\stdClass> —findBy()
Alias of {@see Model::readBy()}.
public findBy(string $column, int|string $value) : Entity|array<string, float|int|string|null>|stdClass|null
Find a row by column name and value.
Parameters
- $column : string
- $value : int|string
Return values
Entity|array<string, float|int|string|null>|stdClass|null —findById()
public findById(int|string $id) :
Find a row by id.
Parameters
- $id : int|string
Return values
—get()
Get same Model instance.
public static get(class-string<\Framework\MVC\T> $class) : T
Parameters
- $class : class-string<\Framework\MVC\T>
Tags
Return values
T —getErrors()
Get Validation errors.
public getErrors() : array<string, string>
Return values
array<string, string> —getPager()
Get the Pager.
public getPager() : Pager
Allowed only after calling a method that sets the Pager.
Tags
Return values
Pager —getValidationMessages()
public getValidationMessages() : array<string, array<string, string>>
Return values
array<string, array<string, string>> —getValidationValidators()
public getValidationValidators() : array<int, string>
Return values
array<int, string> —list()
List rows, optionally with limit and offset.
public list([int|null $limit = null ][, int|null $offset = null ]) : array<int, \Framework\MVC\Entity|array|\stdClass>
Parameters
- $limit : int|null = null
- $offset : int|null = null
Tags
Return values
array<int, \Framework\MVC\Entity|array|\stdClass> —paginate()
A basic function to paginate all rows of the table.
public paginate(mixed $page[, mixed $perPage = 10 ][, array<string|int, array<string|int, mixed>> $where = [] ][, array<string|int, string>|string $orderBy = null ][, string $orderByDirection = 'asc' ]) : array<int, \Framework\MVC\Entity|array|\stdClass>
Parameters
- $page : mixed
-
The current page
- $perPage : mixed = 10
-
Items per page
- $where : array<string|int, array<string|int, mixed>> = []
-
Array in this format:
[['id', '=', 25]]
- $orderBy : array<string|int, string>|string = null
-
Order by columns
- $orderByDirection : string = 'asc'
-
asc or desc
Tags
Return values
array<int, \Framework\MVC\Entity|array|\stdClass> —read()
Read a row based on Primary Key.
public read(int|string $id) : Entity|array<string, float|int|string|null>|stdClass|null
Parameters
- $id : int|string
Tags
Return values
Entity|array<string, float|int|string|null>|stdClass|null —The selected row as configured on $returnType property or null if row was not found
readBy()
Read a row by column name and value.
public readBy(string $column, int|string $value) : Entity|array<string, float|int|string|null>|stdClass|null
Parameters
- $column : string
- $value : int|string
Tags
Return values
Entity|array<string, float|int|string|null>|stdClass|null —readById()
public readById(int|string $id) :
Read a row by id.
Parameters
- $id : int|string
Return values
—replace()
Replace based on Primary Key and return the number of affected rows.
public replace(int|string $id, Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Most used with HTTP PUT method.
Parameters
- $id : int|string
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The number of affected rows or false if validation fails
replaceBy()
Replace based on column value and return the number of affected rows.
public replaceBy(string $column, int|string $value, Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $column : string
- $value : int|string
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The number of affected rows or false if validation fails
replaceById()
public replaceById(int|string $id, Entity|array<string|int, mixed>|stdClass $data) :
Replace rows by id.
Parameters
- $id : int|string
- $data : Entity|array<string|int, mixed>|stdClass
Return values
—save()
Save a row. Update if the Primary Key is present, otherwise insert a new row.
public save(Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The number of affected rows on updates as int, the LAST_INSERT_ID() as int on inserts or false if validation fails
update()
Update based on Primary Key and return the number of affected rows.
public update(int|string $id, Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $id : int|string
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The number of affected rows or false if validation fails
updateBy()
Update based on column value and return the number of affected rows.
public updateBy(string $column, int|string $value, Entity|array<string, float|int|string|null>|stdClass $data) : false|int|string
Parameters
- $column : string
- $value : int|string
- $data : Entity|array<string, float|int|string|null>|stdClass
Return values
false|int|string —The number of affected rows or false if validation fails
updateById()
public updateById(int|string $id, Entity|array<string|int, mixed>|stdClass $data) :
Update rows by id.
Parameters
- $id : int|string
- $data : Entity|array<string|int, mixed>|stdClass
Return values
—checkMysqliException()
protected checkMysqliException(mysqli_sql_exception $exception) : void
Parameters
- $exception : mysqli_sql_exception
Tags
Return values
void —checkPrimaryKey()
protected checkPrimaryKey(int|string $id) : void
Parameters
- $id : int|string
Return values
void —convertCase()
Convert a value to specific case.
protected convertCase(string $value, string $case) : string
Parameters
- $value : string
- $case : string
-
camel, pascal or snake
Return values
string —The converted value
filterAllowedFields()
protected filterAllowedFields(array<string, T> $data) : array<string, T>
Parameters
- $data : array<string, T>
Tags
Return values
array<string, T> —getAllowedFields()
protected getAllowedFields() : array<int, string>
Return values
array<int, string> —getCache()
protected getCache() : Cache
Return values
Cache —getCacheDataNotFound()
protected getCacheDataNotFound() : int|string
Return values
int|string —getCacheInstance()
protected getCacheInstance() : string
Return values
string —getCacheKey()
protected getCacheKey(array<string, float|int|string> $fields) : string
Parameters
- $fields : array<string, float|int|string>
Return values
string —getCacheTtl()
protected getCacheTtl() : int
Return values
int —getConnectionRead()
protected getConnectionRead() : string
Return values
string —getConnectionWrite()
protected getConnectionWrite() : string
Return values
string —getDatabaseToRead()
protected getDatabaseToRead() : Database
Tags
Return values
Database —getDatabaseToWrite()
protected getDatabaseToWrite() : Database
Tags
Return values
Database —getFieldCreated()
protected getFieldCreated() : string
Return values
string —getFieldUpdated()
protected getFieldUpdated() : string
Return values
string —getLanguage()
protected getLanguage() : Language
Return values
Language —getLanguageInstance()
protected getLanguageInstance() : string
Return values
string —getPagerAllowedQueries()
Get allowed queries to be used in the Pager.
protected getPagerAllowedQueries() : array<string|int, string>|null
Return values
array<string|int, string>|null —getPagerQuery()
Get the custom query to be used in the Pager.
protected getPagerQuery() : string|null
Return values
string|null —getPagerUrl()
Get the custom URL to be used in the Pager.
protected getPagerUrl() : string|null
Return values
string|null —getPagerView()
Get the custom view to be used in the Pager.
protected getPagerView() : string|null
Return values
string|null —getPrimaryKey()
protected getPrimaryKey() : string
Return values
string —getReturnType()
protected getReturnType() : string
Return values
string —getTable()
protected getTable() : string
Return values
string —getTimestamp()
Used to auto set the timestamp fields.
protected getTimestamp() : string
Tags
Return values
string —The timestamp in the $timestampFormat property format
getTimestampFormat()
protected getTimestampFormat() : string
Return values
string —getValidation()
protected getValidation() : Validation
Return values
Validation —getValidationLabels()
protected getValidationLabels() : array<string, string>
Return values
array<string, string> —getValidationRules()
protected getValidationRules() : array<string, string[]|string>
Return values
array<string, string[]|string> —isAutoTimestamps()
protected isAutoTimestamps() : bool
Return values
bool —isCacheActive()
protected isCacheActive() : bool
Return values
bool —isProtectPrimaryKey()
protected isProtectPrimaryKey() : bool
Return values
bool —makeArray()
protected makeArray(Entity|array<string, mixed>|stdClass $data) : array<string, mixed>
Parameters
- $data : Entity|array<string, mixed>|stdClass
Return values
array<string, mixed> —makeEntity()
protected makeEntity(array<string, float|int|string|null> $data) : Entity|array<string, float|int|string|null>|stdClass
Parameters
- $data : array<string, float|int|string|null>
Return values
Entity|array<string, float|int|string|null>|stdClass —makePageLimitAndOffset()
protected makePageLimitAndOffset(int $page[, int $perPage = 10 ]) : array<int, int|null>
Parameters
- $page : int
- $perPage : int = 10
Tags
Return values
array<int, int|null> —makeTableName()
protected makeTableName() : string
Return values
string —readRow()
protected readRow(string $column, int|string $value) : array<string, float|int|string|null>|null
Parameters
- $column : string
- $value : int|string
Tags
Return values
array<string, float|int|string|null>|null —readWithCache()
protected readWithCache(string $column, int|string $value) : Entity|array<string, float|int|string|null>|stdClass|null
Parameters
- $column : string
- $value : int|string
Tags
Return values
Entity|array<string, float|int|string|null>|stdClass|null —sanitizePageNumber()
protected sanitizePageNumber(int $number) : int
Parameters
- $number : int
Return values
int —setDuplicateEntryError()
Set "Duplicate entry" as 'unique' error in the Validation.
protected setDuplicateEntryError(string $message) : void
NOTE: We will get the index key name and not the column name. Usually the names are the same. If table have different column and index names, override this method and get the column name from the information_schema table.
Parameters
- $message : string
-
The "Duplicate entry" message from the mysqli_sql_exception
Return values
void —setPager()
Set the Pager.
protected setPager(Pager $pager) : static
Parameters
- $pager : Pager
Return values
static —timezone()
Get the timezone from database write connection config. As fallback, uses the UTC timezone.
protected timezone() : DateTimeZone
Tags
Return values
DateTimeZone —updateCachedRow()
protected updateCachedRow(string $column, int|string $value) : void
Parameters
- $column : string
- $value : int|string