Laravel Eager Loading, validar que se cumpla una condición dentro de las relaciones de la consulta principal.

El uso de las consultas tipo «eager loading» en Laravel son muy útiles, ya que nos permite cargar las relaciones de nuestra consulta principal en un solo bloque de código.
Por ejemplo:
Realizaremos una consulta a la tabla solicitud y al mismo tiempo que nos devuelva los datos de la tabla usuario, categorias y subcategorias


Solicitud::with('users', 'categorias.subcategorias')->get();

Con esta línea de código obtendremos los datos que necesitamos.

¿Pero que ocurre si solo queremos las solicitudes que pertenezcan a la subcategoria Móvil de la categoría Aplicación?

Solo nos basta con hacer uso del método whereHas().


$search = 'Móvil';
Solicitud::with('users', 'categorias.subcategorias')
->whereHas('categorias.subcategorias', function($query) use($search){
$query->where('nombre', $search);
})->get();

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *