Generar el where dinámica en una query
Publicado por Schattenburg (1 intervención) el 15/10/2019 12:15:54
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:
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:
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
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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.id')
->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:
1
2
3
@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
Valora esta pregunta


0