-
-
Save pedrorvidal/8e09b07fecbe5245533e to your computer and use it in GitHub Desktop.
/** | |
* | |
* @return \Entity\BackgroundHome | |
*/ | |
public function getBackgroundHome() | |
{ | |
$hash = $this->getParam()->get('hash'); | |
$backgroundId = $this->getParam()->getInt('id'); | |
$isBackgroundPreview = ($this->getParam()->get('preview') == 'background'); | |
if ($isBackgroundPreview) { | |
if ($this->verifyHash($hash)) { | |
$this->getTpl()->addGlobal('pre_visualizacao_bg', true); | |
return $this->getEm() | |
->getRepository('Entity\BackgroundHome') | |
->find($backgroundId); | |
} else { | |
throw new \Exception\NotFoundException; | |
} | |
} | |
return $this->getEm() | |
->getRepository('Entity\BackgroundHome') | |
->getBackgroundHomeFunc(1); | |
// ->findOneBy(array('publicado' => 1)); | |
} |
/** | |
* | |
* @param $publicado | |
* @return array | |
*/ | |
public function getBackgroundHomeFunc($publicado = 1) | |
{ | |
$dql = "SELECT e FROM {$this->entity} e WHERE 1 = 1"; | |
$parametros = array(); | |
$dql .= " AND (now() BETWEEN :data_inicial AND :data_final )"; | |
if ($publicado !== "") { | |
$dql .= " AND e.publicado = 1"; | |
$parametros['publicado'] = 1; | |
} | |
//Executa a query e passa os parâmetros | |
$query = $this->getEntityManager()->createQuery($dql); | |
$query->setParameters($parametros); | |
return $query->getResult(); | |
} |
$query = $this->createQueryBuilder('b') | |
->andWhere('b.publicado = 1') | |
->andWhere('b.dataInicial < :today') | |
->andWhere('b.dataFinal > :today OR b.dataFinal IS NULL'); | |
$today = new \DateTime('now'); | |
return $query->orderBy('b.dataInicial', 'DESC') | |
->setParameter('today', $today) | |
->getQuery() | |
->useQueryCache(TRUE) | |
->useResultCache(TRUE, CACHE_LIFE_TIME); |
CREATE TABLE tb_background_home
(
id_background_home bigserial NOT NULL,
dt_inicial timestamp without time zone NOT NULL,
dt_final timestamp without time zone,
dt_cadastro timestamp without time zone NOT NULL,
st_publicado integer NOT NULL DEFAULT 0,
no_nome character varying(100) NOT NULL,
id_imagem bigint NOT NULL,
CONSTRAINT pk_background_home PRIMARY KEY (id_background_home),
CONSTRAINT fk_background_home_imagem FOREIGN KEY (id_imagem)
REFERENCES tb_imagem (id_imagem) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT uk_background_home_background_home UNIQUE (id_background_home),
CONSTRAINT ck_background_home_publicado CHECK (st_publicado = ANY (ARRAY[0, 1]))
)
WITH (
OIDS=FALSE
);
ALTER TABLE tb_background_home
OWNER TO postgres;
Pedro, acredito que o que você esteja procurando seja algo nessa linha. Vale lembrar que 'dataInicial' e 'dataFinal' são o nome do atributo da entidade. Uma sugestão que eu faço seria substituir o 'e' do alias da query por o nome real da entidade. Espero ter ajudado