Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2019, 04:42
schattenburg
 
Fecha de Ingreso: junio-2007
Mensajes: 298
Antigüedad: 17 años, 6 meses
Puntos: 5
Laravel: generar dinámicamente el where de la query

Hola a todos,

estoy empezando a estudiar Laravel desde cero y quiero generar una query pero que el where se genere dinámicamente a partir de los parámetros que se pasen.

Mi código es:

DB::enableQueryLog();

$arrHist = DB::table('historial')
->join('cineastas', 'cineastas.id', '=', 'historial.id_cineasta')
->join('peliculas', 'peliculas.id', '=', 'historial.id_pelicula')
->join('categorias', 'categorias.id', '=', 'historial.id_categoria')
->select('peliculas.titulo as titPelicula', 'cineastas.nombre as nomCineasta', 'categorias.nombre as nomCateg','historial.anno','premiado','historial.i d')
->orderby('titPelicula');


if (isset($anno)) {
$arrHist->where('historial.anno', $anno);
}

if (isset($id_categ)) {
$arrHist->where('historial.id_categoria', $id_categ);
}
$arrHist->get();

dd(DB::getQueryLog());

Al poner el dd(DB::getQueryLog()) me pone que está todo bien, veo que la query se genera como yo quiero y que los parámetros que yo paso son los correctos.

El problema viene en la view a la que le mando arrHist, pongo por ejemplo:

@foreach ($arrHist as $clave=>$valor)
{{ $valor->titPelicula }}
@endforeach

Me da un error que titPelicula no existe. Pongo un {{ dd($valor) }} y no veo dónde están los resultados de la query.

¿Qué estoy haciendo mal?

Muchas gracias