Pergunta

No bolo de 1,2 há um recurso que permite que o desenvolvedor não tem que criar modelos, mas tem bolo de fazer o trabalho de detetive em tempo de execução e criar o modelo para você. Este processo acontece de cada vez e é puro, mas no meu caso muito perigosos. Eu li sobre isso em algum lugar e agora eu estou experimentando o lado ruim disso.

Eu criei um plugin com todos os arquivos e tudo parecia ser apenas grande. Isso é até que eu tentei usar algumas das associações e funções do modelo. Então reivindicações bolo que este modelo que eu criei não existe. Eu reduzi-lo a bolo usando esse recurso modelo de auto em vez de jogar e erro ! Então, eu não tenho idéia o que é! Errado

Alguém sabe como desativar esse recurso modelo de auto? É uma boa idéia, mas eu não consigo encontrar onde eu errado se foi com o meu plugin e um erro seria muito útil!

Foi útil?

Solução 2

Cake 1.2

É um hack e é feio cus você precisa arquivos bolo edição do núcleo, mas isto é como eu fazê-lo: \ Cake \ libs \ class_registry.php: Linha 127ish

if (App::import($type, $plugin . $class)) {
    ${$class} =& new $class($options);
} elseif ($type === 'Model') {
    /* Print out whatever debug info we have then exit */
    pr($objects);
    die("unable to find class $type, $plugin$class");
    /* We don't want to base this on the app model */
    ${$class} =& new AppModel($options);
}

Cake 2

Costa recomenda mudar $ rigorosa para true na função init na linha 95 da Cake\Utility\ClassRegistry.php

Ver Bolo de Documentação da API para o init

ClassRegistry.php - função init

Outras dicas

Há sempre a possibilidade de realmente criar o arquivo modelo e conjunto var $ useTable = false.
Se isto não é o que você está pedindo e o modelo e suas associações realmente existem, mas bolo parece ser incapaz de encontrá-los, você tem que verificar triplicar os nomes de todos os modelos e seus nomes de classe, tanto no real definição do modelo e nas definições de associação.

AFAIK você não pode desativar a modelagem automática.

Use

var $useTable = false;

em sua definição de modelo.

Excluir todos os arquivos em cache (todos os arquivos sob app / tmp, manter as pastas)

Na maioria dos casos onde os modelos parecem estar agindo de maneiras inesperadas, muitas vezes eles não incluem mudanças que você fez, é porque esse bolo é useing uma versão antiga em cache do modelo.

Uh ... onde é que vamos começar. Primeiro, como Alexander sugeriu, limpar o cache do aplicativo.

Se você ainda obter o mesmo comportamento, provavelmente há algo errado com os nomes de classe e / ou arquivos.

Lembre-se as regras , para o controlador:

* classname: BlastsController
* filename: blasts_controller.php

para o modelo:

* classname: Blast
* filename: blast.php

Do not foget para lidar com as inflexões irregulares corretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top