Crear Consultas de la base de datos caché

laravel

Laravel simplifica bastante, el acto de crear consultas de la base de datos caché.

Esto permite al framework limitar las consultas repetidas a la base de datos, poniendo a nuestra disposición llamadas al  método que maneja la  caché.

Pongamos como ejemplo que tenemos una tabla ‘consultas’, que se actualiza poco y a la cual necesitamos acceder, muchas veces, para incorporar sus datos en algún analisis.

Lo que nos permite Laravel es almacenar estas consultas en cache  durante  un tiempo, ene nuestro ejemplo colocamos  60 minutos y acceder a ellas mediante el uso de remember, sin tocar la BD

$consultas = Consulta::remember(60)->get();

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……..

Comandos para crear un proyecto en Laravel

laravel

He aquí dos sencillos comandos para crear un proyecto en Laravel, que siempre nos serán útiles y necesarios.

Crear proyecto

composer create-project --prefer-dist laravel/laravel nombre del proyecto

Crear modelos y toda la estructura al mismo tiempo

php artisan make:model Company-mcr
•	-m  crea el archivo de la migración o sea la tabla
•	-c   crea  el controlador
•	-r   indica que el controlador es un controlador de recurso preparado para un CRUD(create, read, update, delete), compatible con REST

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

subir montañas hermana hombres…..

Crear relaciones condicionales

laravel

La claúsula where tiene muchos usos dentro de Laravel y su uso nos facilita mucho las cosas, y entre ellas crear relaciones condicionales. Algunos de estos casos son:

Crear relaciones condicionales

Puedes crear relaciones condicionales utilizando where. Con el  puedes devolver una relación entre, por ejemplo entre los modelos Tareas y Categorias, condicionada esta por el  id del usuario

class NombreModelo extends Model
{
        public function Tareas()
        {
               return $this->belongsTo('Categorias', 'categories_id')
                       ->where('users_id', Auth::user()->id);
        }
}

Actuar como condicional directo

Aquí vemos tres formas de tomar todos las tareas correspondientes a la categoría 1, utilizando where y get

$tareas = Tarea::where('categoria', '=', 1)->get();
$tareas = Tarea::where('categoria', 3)->get();
$tareas = Tarea::whereCategoria(3)->get();

Filtrar fechas con whereDate

Puedes utilizar whereDate para seleccionar o filtrar fechas por diferentes condiciones sea año, día o mes.

$q->whereDate('created_at', date('Y-m-d'));
$q->whereDay('created_at', date('d'));
$q->whereMonth('created_at', date('m'));
$q->whereYear('created_at', date('Y'));

Dentro de una closure al construir una consulta mas compleja en Eloquent

Un ejemplo típico es cuando tenemos que construir una consulta que devuelva resultados dentro de un rango, por ejemplo  donde necesitamos recibir solo las tareas de una categoría dada, y que estén relacionadas con una cantidad de usuarios determinados.

Seria algo asi :

... WHERE (tareas = 'tarea1' and cantidadUsuarios >= 5) or (tareas = 'tarea2' and age >= 8)
Lo mas rápido seria construir algo como esto:
$q->where('tareas', 'tarea1');
$q->orWhere('cantidadUsuarios', '>=', 5);
$q->where('tareas', 'tarea2');
$q->orWhere('cantidadUsuarios', '>=', 8);

En esta construcción de la consulta, el orden no es el correcto y podría no ser todo lo eficiente que ncesitamos; la solución en Laravel entonces, pasa por  utilizar una función anónima que  incluya otras funciones closure como subconsultas:

$q->where(function ($query) {
    $query->where('tareas', 'tarea1')
        ->where('cantidadUsuarios', '>=', 5);
})->orWhere(function($query) {
    $query->where('tareas', 'tarea2')
        ->where('cantidadUsuarios', '>=', 8); 
})

De este modo quedan organizadas las consultas en una sola estructura solida e integral, pero al mismo tiempo fácilmente escalable.

El uso de  orWhere con parámetros multiples

Siguiendo con el ejemplo anterior, vemos que utilizamos de modo alterno el Where y el orWhere, pero si los parámetros son múltiples, al estar haciendo algo asi:

$q->where('a', 1);
$q->orWhere('b', 2);
$q->orWhere('c', 3);

Podríamos hacer una consulta un poco larga, la cual podemos acortar, estructurandola asi:  

$q->where('a', 1);
$q->orWhere(['b' => 2, 'c' => 3]);

WhereX

Con Laravel puedes añadir where al nombre del modelo y hacer aun más elegante tus queries, por ejemplo convertir esto :

$users = User::where('tareas', 1)->get();

En esto:

$users = User::whereTarea(1)->get(); 

Asi de sencillo,  y además ya Laravel trae algunos predefinidos como  whereDate, whereDay, whereMonth y whereYear, relacionados con date y time, lo cuales se comportan asi:

User::whereDate('created_at', date('Y-m-d'));
User::whereDay('created_at', date('d'));
User::whereMonth('created_at', date('m'));
User::whereYear('created_at', date('Y'));

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…..lo que realmente importa no es lo que te da la vida, sino lo que haces con ello….