Método all() de los modelos

El método all() de los modelos de FacturaScripts devuelve un array con todos los registros de un modelo que cumplen con los parámetros especificados.

Parámetros

  • where: (opcional) Filtros a aplicar al listado.
    • Un array de filtros Where.
  • order: (opcional) Ordenación a aplicar.
    • Un array de uno o más elementos (clave => valor), donde la clave es el nombre de la columna y el valor debe ser ASC para orden ascendente o DESC para orden descendente.
  • offset: (opcional) Permite indicar un desplazamiento desde el primer registro a recorrer.
  • limit: (opcional) Permite indicar el número máximo de registros a devolver.
    • Valor por defecto: 0 (todos los registros).
foreach (Producto::all() as $producto) {
    // $producto es el producto que estamos consultando en este momento
}

Ejemplo: Obtener todos los usuarios

Llamando a all() sin ningún parámetro obtenemos todos los registros de la tabla, en este caso todos los usuarios:

$usuarios = User::all();

Al ser un método estático podemos llamarlo directamente sin tener que crear un objeto primero.

Ejemplo: Obtener todos los productos de la familia 1234

Podemos filtrar los registros que queremos obtener aplicando filtros Where, que deben ir en un array en el primer parámetro del método all():

$where = [Where::eq('codfamilia', '1234')];
$productos1234 = Producto::all($where);

Ejemplo: Obtener los últimos 5 albaranes con total >100 del cliente 123

Con el segundo parámetro, orderBy, podemos cambiar la ordenación de los resultados. Con el cuarto parámetro limitamos el número de resultados que obtenemos.

$where = [
   Where::eq('codcliente', '123'),
   Where::gt('total', 100),
];
$orderBy = ['fecha' => 'DESC'];
$ultimosAlbaranes = AlbaranCliente::all($where, $orderBy, 0, 5);

Ejemplo: recorrer un listado gigante de 100 en 100

Con los parámetros offset y limit podemos acotar los registros a obtener, lo que es perfecto para recorrer listados gigantes sin consumir toda la memoria:

$offset = 0;
$limit = 100;
do {
     // obtenemos los siguientes 100 productos
     $productos = Producto::all([], ['idproducto' => 'ASC'], $offset, $limit);

     // recorremos los productos
     foreach($productos as $producto) {
       // tu código aquí
     }

     $offset += $limit; // actualizamos el offset para obtener los siguientes 100
} while (count($productos) > 0);
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-2026 FacturaScripts
0.39396s

Soporte