Estava lendo o blog de Daniel Hofstetter e vi uma coisa muito interessante que deve ser ressaltado e alertado ao pessoal. Quando você usa controladores e não quer utilizar modelos, você pode fazer isto de duas maneiras:
1 2 3 | class MeuController extends AppController { var $uses = null; } |
OU
1 2 3 | class MeuController extends AppController { var $uses = array(); } |
Eu uso normalmente o “$uses = null;”, mas com este post vou mudar de atitude. O motivo é o seguinte: quando você faz o uso de modelos dentro do AppController, por exemplo, você utiliza a variável $uses também informando o nome do modelo. Entretando, como o seu controlador é uma classe filha do AppController, ele acaba “destroindo” a variável dos modelos e ao utilizar nas funções do AppController ele dizia que a propriedade não estava definida.
Quando você utiliza $uses = array(), o Cake faz um merge, ou seja, junta o vetor vazio do seu controlador com o vetor com informações do AppController.
Portanto, vamos utilizar $uses = array() daqui em diante quando não quisermos utilizar modelos. Assim, evitamos problemas mais sérios.