CakePHP Brasil

12 maio 2008

Controller sem Model

Arquivado em: CakePHP — Tags:, , , — Juan Basso @ 9:08 pm

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.

Powered by WordPress