-
Conteúdo Similar
-
Por edivancastro
Pessoal, em anexo segue meu modelo de banco de dados (duas tabelas). Estou utilizando doctrine. Este é um modelo resumido para eu tentar explicar o que estou passando.
As minhas classes Banner e Menu extendem de classes diferentes (ClasseX e ClasseY) e estas classes Banner e Menu, como voces podem ver possuem um Link que pode ser para uma categoria, artigo ou linkexterno (http://outrosite.com). Dai surgiu essa necessidade de min criar uma classe Link. Porem na minha opiniao é inviavel eu criar uma tabela no banco de dados para armazenar link, ou seja, a classe link não chega ser uma entidade concreta (tabela), seria apenas coluna no BD e para cada tipo de Link há uma estrategia para gerar o seu respectivo LinkURL, conforme pode ser observado na classe Link.
Pensei em fazer class Menu extends Link e class Banner extends Link, porem as classes banner e menu ja extendem de outras classes e como o PHP não aceita herança multipla não tem como.
enfim, como faço para mapear a classe Link para este modelo de banco de dados meu?
<?php /** * @ORM\Entity */ class Banner extends ClasseX{ /** * @ORM\Id */ private $id; /** * @ORM\Column('type=string') */ private $descricao; private $link; protected setLink(Link $link){ $this->link = $link; } protected getLink(){ return $this->link; } }
<?php /** * @ORM\Entity */ class Menu extends ClasseY{ /** * @ORM\Id */ protected $id; /** * @ORM\Column(type="string") */ protected $descricao; protected $link; protected setLink(Link $link){ $this->link = $link; } protected getLink(){ return $this->link; } }
<?php class Link{ const TIPO_ARTIGO=1; const TIPO_CATEGORIA=2; const TIPO_LINKEXTERNO=3 protected $tipo_link; protected $categoria; protected $artigo; proctected $linkexterno; public function setLink($link){ if(is_object($link)){ switch(get_class($link)){ case Artigo::class: $this->tipo = self::TIPO_ARTIGO; $this->artigo = $link; break; case Categoria::class: $this->tipo = self::TIPO_CATEGORIA; $this->categoria = $link; break; } }else{ $this->tipo = self::TIPO_LINKEXTERNO; $this->linkexterno = $link; } } public function getLinkUrl(){ switch($this->tipo_link){ case self::TIPO_ARTIGO; return $this->makeUrlToArtigo(); break; case self::TIPO_CATEGORIA; return $this->makeUrlToCategoria(); break; case self::TIPO_LINKEXTERNO; return $this->linkexterno; } } }
-
Por gust.php
Bom dia senhores.
Estou tentando agrupar uma consulta por data no Doctrine se sucesso .... Alguém pode ajudar?
$em = $this->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->select('u'); $qb->from('Servico\Model\Servico', 'u'); $qb->where('u.STATUS IN (:status)'); $qb->setParameter('status', ['2', '3', '4', '6']); if ($cliente) { $qb->andWhere('u.CLIENTE = :cliente'); $qb->setParameter('cliente', $cliente); } if ($fornecedor) { $qb->andWhere('u.FORNECEDOR = :fornecedor'); $qb->setParameter('fornecedor', $fornecedor); } if ($motorista) { $qb->andWhere('u.MOTORISTA = :motorista'); $qb->setParameter('motorista', $motorista); } if ($fileCliente) { $qb->andWhere('u.FILE = :file_cliente'); $qb->setParameter('file_cliente', $fileCliente); } if ($inicio AND $fim) { $qb->andWhere('u.DATA_INICIO BETWEEN :inicio AND :fim'); $qb->setParameter('inicio', $inicio); $qb->setParameter('fim', $fim); } $qb->orderBy('u.DATA_INICIO', 'ASC'); $qb->addOrderBy('u.HORA_INICIO', 'ASC'); //$qb->groupBy('u.DATA_INICIO'); ---> Isso não funciona $query = $qb->getQuery(); return $query->getResult();
-
Por gust.php
Prezados, bom dia. Estou tentando diferenciar o layout de um modulo dos demais, todos os modulos do meu sistema tem um mesmo layout com o mesmo menu, quero que todos fiquem igual ao layout do modulo Application, e o modulo cliente seja diferente. Estou tentando assim: No modulo Application o arquivos module.config.php esta assim: 'view_manager' => array( 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ), 'template_path_stack' => array( 'application' => __DIR__ . '/../view', ), 'strategies' => array( 'ViewJsonStrategy', ), ), Em todos os outros modulos estou fazendo assim: 'view_manager' => array( 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => array( 'layout/layout' => __DIR__ . '/../../Application/view/layout/layout.phtml', ----> Estou usando o layout de Application, esta funcionando. 'cadastro/index/index' => __DIR__ . '/../view/cadastro/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ), Quando faço o login, chamo a rota homecli. Beleza, isso funciona. Só que, quando logo com um outro usuário qualquer, ele carrega o layout do cliente, ele não carrega mais o layout do Application, ele sempre carrega o layout do cliente. Arquivo module.config.php modulo cliente: 'view_manager' => array( 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'cliente/index/index' => __DIR__ . '/../view/cliente/index/index.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ), -
Por gust.php
Prezados, boa tarde.
Nem sei se posso postar esse tipo de mensagem aqui.
Estou iniciando um projeto com zend2 e mysql, preciso terminar ele dentro de 3 meses.
Alguém aqui que seja do Rio de Janeiro e que tenha experiencia com Zend2 ?
-
Por gust.php
Galera, boa noite.
Estou tentando enviar os campos e não consigo.
Já conferi e as variáveis estão preenchidas, no caso os atributos values.
Quando clico no link, ele abre uma nova página mas não chama a função, não recebo nenhum dado no meu controller.
<div class="col-md-12"> <input type="text" name="datai" id="datai" hidden value="<?= $this->inicio; ?>"> <input type="text" name="dataf" id="dataf" hidden value="<?= $this->fim; ?>"> <input type="text" name="file" id="file" hidden value="<?= $this->file; ?>"> <a href="#" class="btn btn-mini btn-success pull-right" target="_blank" id="printPeriodo"><span i class="fa fa-print"></span></a> </div>
<script type="text/javascript"> $(function () { $("#printPeriodo").on('click', function () { $.post('<?php echo $this->url('servico', array('action' => 'printMap')); ?>', { datai: $("input[name=datai]").val(), dataf: $("input[name=dataf]").val(), file: $("input[name=file]").val() } ); }); }); </script>
-