JoinModel
in package
Clase base de la que heredan todas las vistas de modelo.
Permite la visualización de datos de varias tablas de la base de datos. Este tipo de modelo es solo para lectura de datos, no permite la modificación o eliminación de datos directamente.
Se debe indicar un modelo principal ("master"), que será el responsable de ejecutar las acciones de modificación de datos. Esto significa que al insertar, modificar o eliminar, solo se realiza la operación sobre el modelo master indicado.
Tags
Table of Contents
Properties
- $dataBase : DataBase
- $masterModel : ModelClass
- $attributes : array<string|int, mixed>
- $modelFieldsCache : array<string|int, mixed>
Methods
- __construct() : mixed
- Constructor e inicializador de la clase.
- __get() : mixed
- Devuelve el valor del atributo indicado.
- __isset() : mixed
- Comprueba si existe el atributo indicado.
- __set() : mixed
- Asigna el valor al atributo indicado.
- all() : array<string|int, static>
- Devuelve todos los registros que cumplen las condiciones.
- allWhereEq() : array<string|int, static>
- Devuelve todos los registros donde el campo es igual al valor.
- clear() : void
- Restablece los valores de todos los atributos del modelo.
- count() : int
- Devuelve el número de registros que cumplen las condiciones.
- countWhereEq() : int
- Devuelve el número de registros donde el campo es igual al valor.
- delete() : bool
- Elimina los datos del modelo master de la base de datos.
- exists() : bool
- Devuelve true si los datos del modelo existen en la base de datos.
- getModelFields() : array<string|int, mixed>
- Devuelve la definición y el tipo de los campos incluidos en la vista.
- hasColumn() : bool
- Comprueba si el modelo contiene la columna indicada.
- id() : mixed
- Devuelve el valor de la clave primaria del modelo master.
- load() : bool
- Carga un registro del modelo utilizando el código de la clave primaria del master model.
- loadFromCode() : bool
- Carga un registro mediante un código o condiciones adicionales.
- loadWhere() : bool
- Carga el primer registro que coincida con las condiciones especificadas.
- loadWhereEq() : bool
- Carga el primer registro cuyo campo coincide con el valor indicado.
- primaryColumnValue() : mixed
- Devuelve el valor de la clave primaria del modelo principal.
- totalSum() : float
- Suma los valores de un campo para los registros que cumplen las condiciones.
- url() : string
- Devuelve la URL donde ver o modificar los datos.
- db() : DataBase
- Devuelve la instancia de la base de datos actual.
- getFields() : array<string|int, mixed>
- Devuelve la lista de campos o columnas para la cláusula SELECT.
- getGroupFields() : string
- Devuelve los campos para la cláusula GROUP BY.
- getSQLFrom() : string
- Devuelve las tablas relacionadas para la cláusula FROM.
- getTables() : array<string|int, mixed>
- Devuelve la lista de tablas necesarias para la ejecución de la vista.
- loadFromData() : void
- Asigna los valores del array $data a los atributos del modelo.
- setMasterModel() : void
- Establece el modelo master para las operaciones de datos.
- checkTables() : bool
- Comprueba que existen todas las tablas necesarias.
- fieldsList() : string
- Convierte la lista de campos en una cadena para la cláusula SELECT.
- getCacheKey() : string
- Construye la clave de caché incluyendo las tablas del join, para poder invalidarla solamente cuando cambia alguna de ellas.
- getGroupBy() : string
- Devuelve la cláusula GROUP BY.
- getOrderBy() : string
- Convierte un array de ordenamiento en una cláusula ORDER BY.
Properties
$dataBase
protected
static DataBase
$dataBase
$masterModel
protected
ModelClass
$masterModel
Modelo principal para las operaciones de datos.
$attributes
private
array<string|int, mixed>
$attributes
= []
Atributos del modelo.
$modelFieldsCache
private
static array<string|int, mixed>
$modelFieldsCache
= []
Caché de campos (con tipos) por clase, para evitar reintrospección.
Methods
__construct()
Constructor e inicializador de la clase.
public
__construct([array<string|int, mixed> $data = [] ]) : mixed
Parameters
- $data : array<string|int, mixed> = []
__get()
Devuelve el valor del atributo indicado.
public
__get(mixed $name) : mixed
Parameters
- $name : mixed
__isset()
Comprueba si existe el atributo indicado.
public
__isset(mixed $name) : mixed
Parameters
- $name : mixed
__set()
Asigna el valor al atributo indicado.
public
__set(mixed $name, mixed $value) : mixed
Parameters
- $name : mixed
- $value : mixed
all()
Devuelve todos los registros que cumplen las condiciones.
public
static all([array<string|int, Where> $where = [] ][, array<string|int, mixed> $order = [] ][, int $offset = 0 ][, int $limit = 0 ]) : array<string|int, static>
Parameters
- $where : array<string|int, Where> = []
- $order : array<string|int, mixed> = []
- $offset : int = 0
- $limit : int = 0
Return values
array<string|int, static>allWhereEq()
Devuelve todos los registros donde el campo es igual al valor.
public
static allWhereEq(string $field, mixed $value[, array<string|int, mixed> $order = [] ]) : array<string|int, static>
Parameters
- $field : string
- $value : mixed
- $order : array<string|int, mixed> = []
Return values
array<string|int, static>clear()
Restablece los valores de todos los atributos del modelo.
public
clear() : void
count()
Devuelve el número de registros que cumplen las condiciones.
public
static count([array<string|int, Where> $where = [] ]) : int
Parameters
- $where : array<string|int, Where> = []
Return values
intcountWhereEq()
Devuelve el número de registros donde el campo es igual al valor.
public
static countWhereEq(string $field, mixed $value) : int
Parameters
- $field : string
- $value : mixed
Return values
intdelete()
Elimina los datos del modelo master de la base de datos.
public
delete() : bool
Return values
boolexists()
Devuelve true si los datos del modelo existen en la base de datos.
public
exists() : bool
Return values
boolgetModelFields()
Devuelve la definición y el tipo de los campos incluidos en la vista.
public
getModelFields() : array<string|int, mixed>
Return values
array<string|int, mixed>hasColumn()
Comprueba si el modelo contiene la columna indicada.
public
hasColumn(string $columnName) : bool
Parameters
- $columnName : string
Return values
boolid()
Devuelve el valor de la clave primaria del modelo master.
public
id() : mixed
load()
Carga un registro del modelo utilizando el código de la clave primaria del master model.
public
load(mixed $code) : bool
Parameters
- $code : mixed
Return values
boolloadFromCode()
Carga un registro mediante un código o condiciones adicionales.
public
loadFromCode(mixed $cod[, array<string|int, Where> $where = [] ][, array<string|int, mixed> $orderby = [] ]) : bool
Usar load() cuando solo se necesita cargar por código, o loadWhere() cuando se requieren condiciones WHERE u ordenamiento adicionales.
Parameters
- $cod : mixed
- $where : array<string|int, Where> = []
- $orderby : array<string|int, mixed> = []
Attributes
- #[Deprecated]
- $reason: 'Use load() or loadWhere() instead'
Return values
boolloadWhere()
Carga el primer registro que coincida con las condiciones especificadas.
public
loadWhere(array<string|int, Where> $where[, array<string|int, mixed> $order = [] ]) : bool
Parameters
- $where : array<string|int, Where>
- $order : array<string|int, mixed> = []
Return values
boolloadWhereEq()
Carga el primer registro cuyo campo coincide con el valor indicado.
public
loadWhereEq(string $field, mixed $value) : bool
Parameters
- $field : string
- $value : mixed
Return values
boolprimaryColumnValue()
Devuelve el valor de la clave primaria del modelo principal.
public
primaryColumnValue() : mixed
Usar id() en su lugar.
Attributes
- #[Deprecated]
- $reason: 'Use id() instead'
- $replacement: '%class%->id()'
totalSum()
Suma los valores de un campo para los registros que cumplen las condiciones.
public
totalSum(string $field[, array<string|int, Where> $where = [] ]) : float
Parameters
- $field : string
- $where : array<string|int, Where> = []
Return values
floaturl()
Devuelve la URL donde ver o modificar los datos.
public
url([string $type = 'auto' ][, string $list = 'List' ]) : string
Parameters
- $type : string = 'auto'
- $list : string = 'List'
Return values
stringdb()
Devuelve la instancia de la base de datos actual.
protected
static db() : DataBase
Return values
DataBasegetFields()
Devuelve la lista de campos o columnas para la cláusula SELECT.
protected
abstract getFields() : array<string|int, mixed>
Return values
array<string|int, mixed>getGroupFields()
Devuelve los campos para la cláusula GROUP BY.
protected
getGroupFields() : string
Return values
stringgetSQLFrom()
Devuelve las tablas relacionadas para la cláusula FROM.
protected
abstract getSQLFrom() : string
Return values
stringgetTables()
Devuelve la lista de tablas necesarias para la ejecución de la vista.
protected
abstract getTables() : array<string|int, mixed>
Return values
array<string|int, mixed>loadFromData()
Asigna los valores del array $data a los atributos del modelo.
protected
loadFromData(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
setMasterModel()
Establece el modelo master para las operaciones de datos.
protected
setMasterModel(mixed $model) : void
Parameters
- $model : mixed
checkTables()
Comprueba que existen todas las tablas necesarias.
private
checkTables() : bool
Return values
boolfieldsList()
Convierte la lista de campos en una cadena para la cláusula SELECT.
private
fieldsList() : string
Return values
stringgetCacheKey()
Construye la clave de caché incluyendo las tablas del join, para poder invalidarla solamente cuando cambia alguna de ellas.
private
getCacheKey(string $suffix) : string
Parameters
- $suffix : string
Return values
stringgetGroupBy()
Devuelve la cláusula GROUP BY.
private
getGroupBy() : string
Return values
stringgetOrderBy()
Convierte un array de ordenamiento en una cláusula ORDER BY.
private
getOrderBy(array<string|int, mixed> $order) : string
Parameters
- $order : array<string|int, mixed>