CakePHP - Quebrando as normas

Veja nesse artigo as formas de como personalizar as configurações da sua aplicação em Cake para que você não precise ficar seguindo tudo que ele manda

Até agora em nossos tutoriais seguimos as normas do Cake, o que é muito bom, pois assim ele trabalha mais por nós, mas nem sempre isso é viável como no caso de já termos uma base de dados consolidada e quisermos construir um novo sistema sobre essa base utilizando o CakePHP. Para este problema o Cake possui formas para adaptar-se à situação. Um outro exemplo seria a nomenclatura das views, elas devem ter o mesmo nome da action no controlador, nem sempre você pode querer seguir esse padrão ou por algum outro motivo, como duas actions usarem a mesma view. Mas nem todas as normas podem ser desobedecidas, com, por exemplo, a nomenclatura das classes as localização dos arquivos nos diretórios.

Configurações no Model.

Para começar vamos imaginar o cenário seguinte:

Uma base de dados já existente com as tabelas:

Logo elas não estão nem um pouco no padrão que o Cake nos diz para usar.

O model de tb_post ficaria assim.

Listagem 1: Model para tb_post

Pronto, apartir de agora nosso model já está linkado com a tabela tb_post.

Vajamos como ficaria o model para tb_usuario.

Listagem 2: Model para tb_usuario

A próxima variável que será mostrada serve para “setar” qual campo deve aparecer como display nas listas quando usarmos o método Model:find(‘list’);

Listagem 3: implementado a variável displayField

Configurações para o Controller.

Normalmente um controller agrega um model com o mesmo nome no singular. Mas quando esse cenário não for verdade podemos utilizar o array $uses.

Listagem 4: implementando o array $uses

public class UsuarioController extends AppController{ /* Aqui estamos dizendo qual model esse controller deve usar, podemos também usar mais de um model quando for o caso bastando apenas adicionar mais uma posição ao array */ public $uses = array(‘User’); }

E para quando tivermos que usar uma view que não tenha o mesmo nome da action, podemos utilizar o método render(‘view’,’layout’).

Listagem 5: implementando o método render.

request->is(‘post’)){ } /*renderiza a view listar dentro*/ $this->render(‘listar’); } ?>

Podemos utilizar esse método para disfarçar a url, pois o que aparecerá no url será a action que o usuário digitou e não a que foi redenrizada.

Bem, isso é tudo por enquanto, deixe seu comentário, dúvida, elogio e até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados