I have the following code:
- ex1:
$ciclo_id = 0 // value sent from the op
// queries
if ($ciclo_id == 0) {
$get_totales = $this->modelsManager->createBuilder()
->columns([
'gru.nombre',
'sum(!isnull(usu.anio_ingreso)) as ingresos',
'sum(!isnull(usu.anio_egreso)) as egresos',
'sum(!isnull(usu.anio_baja)) as bajas'
])
->from(['usu' => Usuarios::class])
->rightJoin(Grupo::class, 'gru.grupo_id = usu.grupo', 'gru')
->groupBy('gru.grupo_id')
->orderBy('gru.grupo_id asc')
->getQuery()
->execute();
} else {
$get_totales = $this->modelsManager->createBuilder()
->columns([
'gru.nombre',
'sum(!isnull(usu.anio_ingreso)) as ingresos',
'sum(!isnull(usu.anio_egreso)) as egresos',
'sum(!isnull(usu.anio_baja)) as bajas'
])
->from(['usu' => Usuarios::class])
->rightJoin(Grupo::class, 'gru.grupo_id = usu.grupo', 'gru')
->where('usu.ciclo = :ciclo:', ['ciclo' => $ciclo_id])
->groupBy('gru.grupo_id')
->orderBy('gru.grupo_id asc')
->getQuery()
->execute();
}
The query serves to bring data according to the option chosen by a user.
I want simplify the previous code something like:
- ex2:
$get_totales = $this->modelsManager->createBuilder()
->columns([
'gru.nombre',
'sum(!isnull(usu.anio_ingreso)) as ingresos',
'sum(!isnull(usu.anio_egreso)) as egresos',
'sum(!isnull(usu.anio_baja)) as bajas'
])
->from(['usu' => Usuarios::class])
->rightJoin(Grupo::class, 'gru.grupo_id = usu.grupo', 'gru');
if ($ciclo_id > 0) {
$get_totales->where('usu.ciclo = :ciclo:', ['ciclo' => $ciclo_id]);
}
$get_totales->groupBy('gru.grupo_id')
->orderBy('gru.grupo_id asc')
->getQuery()
->execute();
My problem is when I use the first example I can get results and with second example I get nothing regardless of the value of the variable $ciclo_id
Any ideas? Thanks.
Extra info:
When I dump $get_totales
in example 1 returns object(Phalcon\Mvc\Model\Resultset\Simple)
, the example 2 gives object(Phalcon\Mvc\Model\Query\Builder)