Code Igniter Versão 1.5.2 - Guia do Usuário


Views

Uma view é simplesmente uma página ou um fragmento de página, como um cabeçalho, um rodapé, uma coluna lateral etc. Aliás, views podem também ser embutidas dentro de outras views se você precisar.

Views nunca são chamadas diretamente, elas precisam ser carregadas por um controller. Lembre-se que num framework MVC, o Controller atua como um guarda de trânsito, sendo responsável por controlar o tráfego de dados e chamar a view quando preciso. Se você ainda não leu a pgáina Controllers, o faça antes de continuar lendo isto.

Usando o controller de exemplo que você criou na página controller, vamos adicionar uma view a ele.

Criando uma View

Usando seu editor de texto, crie um arquivo chamado blogview.php, e coloque isto nele:

Salve o arquivo em seu diretório application/views/.

Carregando uma View

Para carregar um arquivo view específico, você deve usar a seguinte função:

$this->load->view('nome');

Onde nome é o nome de seu arquivo view. Note: A extensão .php não precisa ser especificada a menos que você use outra coisa além dela.

Agora, abra o arquivo controller blog.php que você fez anteriormente e substitua o comando echo com a função de carregamento da view:

Se visitar seu site usando aquela mesma URL de antes, deverá ver sua nova view. A URL era similar a esta:

www.seu-site.com/index.php/blog/

Armazenando Views dentro de subdiretórios

Seus arquivos view podem também ser armazenados dentro de subdiretórios se você assim quiser organizá-los. Para isto, será preciso incluir o nome do diretório no carregamento da view. Exemplo:

$this->load->view('nome-do-diretorio/nome-do-arquivo');

Adicionando Dados Dinâmicos em uma View

Dados são passados do controller para a view através de uma array ou de um object no segundo parâmetro fa função de carregamento da view. Aqui vai um exemplo utilizando uma array:

$data = array(
               'title' => 'Meu Título',
               'heading' => 'Meu cabeçalho'
               'message' => 'Minha Mensagem'
          );

$this->load->view('blogview', $data);

E aqui está um exemplo utilizando um objeto:

$data = new ClasseQualquer();
$this->load->view('blogview', $data);

Note: Se você usar um objeto, as variáveis da classe serão transformadas em elementos de uma array.

Vamos experimentar em nosso arquivo controller. Abra-o e digite isto:

Agora, abra seu arquivo view e altere o texto para variáveis que correspondem as chaves (keys) da array em seus dados:

Carrega a página usando a URL costumeira e você deverá ver as variáveis substituídas.

Note: Você notará que no exemplo acima estamos usando a sintaxe alternativa do PHP. Se você não está familiarizado com ela, leia isto.

Criando Loops

A array de dados que você passa a seus arquivos view não é limitada a simples variáveis. Você pode passar arrays multidimensionais, que podem se repetir em loop para gerar múltiplas linhas. Por exemplo, se você puxar alguma informação de seu banco de dados, ela geralmente virá na forma de uma array multidimensional.

Aqui vai um simples exemplo. Adicione isto em seu controller:

Abra agora seu arquivo view e crie um loop: