laravel 5.6 Eloquent optimizando consultas

Para ver las querys que se ejecutan en una vista

vamos al archivo de rutas

routes/web.php

y escribimos el sgt codigo


DB::listen(function ($query){
echo "<pre>{$query->sql}</pre>";
});

por ejemplo si vamos a la vista de usuarios
vemos que se
ejecuta 1 request para a la tabla de Users para traer a los usuarios
y 1 request a la tabla user_role por cada usuario para traer los nombres de sus roles.

osea que para mostrar un listado de 100 usuarios estariamos haciendo 100 consultas a la base de datos!


esto lo modificamos en el controller de USer
app\Http\Controllers\UsersController.php


y en  public function index()
    {
        $users = User::all();
        return view('users.index',compact('users'));
    }

CAmbiamos User::all() por

 $users = User::with('roles')->get();

y listo.

Ahora la vista solo ejecutara una unica llamada a la base de datos para mostrar
la lista de usuarios




No hay comentarios:

Publicar un comentario

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable