sexta-feira, 31 de julho de 2015

CRUD no Zend Framework 2 - Select

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