Vamos utilizar o Repository do Doctrine 2 para recuperar os registros do banco de dados no Zend Framework 2.
Segue abaixo o passo-a-passo:
01 - Vamos adicionar a rota em module/config/module.config.php:
'adm-home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/adm-home',
'defaults' => array(
'controller' => 'Administrador\Controller\Administrador',
'action' => 'select',
),
),
),
02 - No controller iremos criar o método responsável por recebemos os dados da classe de serviços e enviarmos a view. Então acessando module/Administrador/src/Administrador/Controller/AdministradorController.php:
public function selectAction() {
//instanciando a classe de serviços
$admService = $this->getServiceLocator()->get('Administrador\Service\AdministradorService');
//recuperando os registros do banco de dados
$data['administradores'] = $admService ->getAll();
//retornando os dados para a view
return new ViewModel($data);
}
03 - Na classe de serviços do módulo temos que fazer a conexão com o Repository da entidade. A classe está em module/Administrador/src/Administrador/Service:
Vamos adicionar a chamada da classe EntityManager do Doctrine:
use Doctrine\ORM\EntityManager;
Então criar o método para se conectar com o repository e retornar os registros ao controller:
public function getAll() {
$admRepository = $this->em->getRepository('Administrador\Entity\Administrador');
return $admRepository ->get();
}
04 - Vamos acessar o diretório module/Administrador/src/Administrador/Entity para criarmos o método get();
//pegando os registros pelos parâmetros passados
public function get(){
return $this->findAll();
}
05 - Vamos criar o arquivo select.phtml em module/Administrador/view/administrador/administrador/ para exibirmos os registros:
<table class="table table-condensed table-hover table-striped">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<?php
foreach ($administradores as $adm) {
echo
"<tr>
<td>{$adm->getAdministradorId()}</td>
<td>{$adm->getAdministradorNome()}</td>
<td>{$adm->getAdministradorEmail()}</td>
</tr>";
}
?>
</tbody>
</table>
Nenhum comentário:
Postar um comentário