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