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