$modelo->load(), loadWhere() y loadWhereEq()

Los modelos tienen los métodos load() y loadWhere() para recuperar registros. El método loadFromCode() permanece como alias por compatibilidad, pero está en desuso y debería evitarse en el código nuevo.

load($code)

Permite cargar el registro cuyo valor de clave primaria coincide con $code.

Parámetros

  • code: Valor de la clave primaria. Si es null, el método devuelve FALSE sin realizar consultas.

Retorno y efectos

  • Devuelve TRUE si encuentra el registro y carga los datos en el modelo.
  • Devuelve FALSE si no existe y limpia el estado (clear()), dejando el modelo sin identificador.
  • Tras una carga correcta se sincronizan los valores originales (syncOriginal()), lo que permite detectar cambios antes de guardar.

Ejemplo: Cargar el cliente 123

use FacturaScripts\Core\Model\Cliente;

$cliente = new Cliente();
if ($cliente->load('123')) {
    // OK, hemos cargado los datos del cliente 123
} else {
    // No existe ningún cliente 123
}

loadWhere(array $where, array $order = [])

Permite cargar el primer registro que cumple una lista de filtros.

Parámetros

  • where: Array de filtros. Lo habitual es usar objetos de la clase FacturaScripts\Core\Where.
    • Construye filtros AND/OR con métodos como Where::eq(), Where::orLike(), Where::sub(), etc.
    • Puedes filtrar varios campos a la vez usando el separador | en la definición (Where::like('nombre|razonsocial', 'demo')).
    • Los operadores soportados incluyen =, !=, >, <, BETWEEN, IN, LIKE, XLIKE, REGEXP, además de comparaciones entre columnas mediante valores Where::column('campo', 'field:otro_campo').
  • order: (opcional) Array asociativo ['campo' => 'ASC|DESC'] que se aplica al conjunto filtrado. Admite varios campos de ordenación.

Retorno y efectos

  • Devuelve TRUE si encuentra un registro y lo carga.
  • Devuelve FALSE si no hay coincidencias y limpia el estado del modelo.
  • También sincroniza los valores originales para que funciones como hasChanged() sigan operativas.

Ejemplo: Cargar el cliente con teléfono 555444333

use FacturaScripts\Core\Model\Cliente;
use FacturaScripts\Core\Where;

$cliente = new Cliente();
if ($cliente->loadWhere([Where::eq('telefono1', '555444333')])) {
    // OK
} else {
    // Cliente no encontrado
}

Ejemplo: Combinar filtros complejos

use FacturaScripts\Core\Model\Cliente;
use FacturaScripts\Core\Where;

$where = [
    Where::like('telefono1|telefono2', '%444%'),
    Where::eq('estado', 'ACTIVO'),
    Where::isNull('fechabaja')
];

$cliente = new Cliente();
if ($cliente->loadWhere($where, ['fechaalta' => 'DESC'])) {
    // Cliente activo más reciente con un teléfono que contiene 444
}

Ejemplo: Cargar el primer producto con stock mayor que 0

use FacturaScripts\Core\Model\Producto;
use FacturaScripts\Core\Where;

$producto = new Producto();
$producto->loadWhere([Where::gt('stockfis', 0)], ['stockfis' => 'ASC']);

loadWhereEq(string $field, $value)

Atajo para llamar a loadWhere() con un filtro de igualdad sobre un único campo.

Parámetros

  • field: Nombre del campo sobre el que se aplicará el filtro.
  • value: Valor que debe tener el campo. Se convierte a SQL mediante var2str, por lo que puedes pasar cadenas, números o nulos.

Retorno y efectos

  • Devuelve TRUE si encuentra un registro con el valor indicado.
  • Devuelve FALSE si no hay coincidencias y limpia el estado del modelo.
  • Internamente llama a loadWhere([Where::eq($field, $value)]), por lo que comparte el mismo comportamiento que loadWhere().

Ejemplo: Cargar un almacén por código

use FacturaScripts\Core\Model\Almacen;

$almacen = new Almacen();
if ($almacen->loadWhereEq('codigo', 'MADRID')) {
    // Almacén encontrado
}

Evita loadFromCode()

loadFromCode() sigue existiendo como alias para proyectos antiguos, pero está deprecated. No admite todas las capacidades de Where y será retirado en futuras versiones. Siempre que necesites cargar datos:

  • Usa load($codigo) si conoces la clave primaria.
  • Usa loadWhere($filtros, $orden) para cualquier otra búsqueda.
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.37419s

Soporte