select('*, ip.id AS page_id') ->from('info_panels', 'ip') ->andWhere( Operator::andX( Operator::equals(['type' => !empty($type) ? $type : 'default']), '(date_from IS NULL OR date_from <= NOW()) AND (date_to IS NULL OR date_to >= NOW())' ) ); $infoPanel->andWhere( Translation::joinTranslatedFields( InfoPanelTranslation::class, function (QueryBuilder $qb, $columnName, $translatedField) { if ($columnName === 'active') { $qb->andWhere(Operator::coalesce($translatedField, 'ip.active')." = 'Y'"); } return true; }, [ 'body' => 'body', 'active' => 'is_panel_active', 'data' => 'data', ], ), ); return $infoPanel ->orderBy('date_from', 'DESC') ->setMaxResults(1) ->execute() ->fetchAssociative(); } }