Frage

In Kuchen 1.2 gibt es eine Funktion, die den Entwickler ermöglicht, keine Modelle erstellen müssen, sondern haben Kuchen tun während der Laufzeit der Detektivarbeit und erstellen für Sie das Modell. Dieser Prozess geschieht jedes Mal, und ist ordentlich, aber in meinem Fall sehr gefährlich. Ich las diese irgendwo und jetzt erlebe ich die schlechte Seite davon.

Ich habe ein Plugin mit allen Dateien erstellt und alles schien einfach toll zu sein. Das ist, bis ich versuchte, einige der Modell Verbände und Funktionen zu nutzen. Dann behauptet, Kuchen, dass dieses Modell die ich angelegt habe nicht existiert. Ich habe es auf Kuchen verengte diese Auto-Modell-Funktion anstelle des Werfens und Fehler mit ! Also ich habe keine Ahnung, was los ist!

Weiß jemand, wie dieses Auto Modell Funktion deaktivieren? Es ist ein guter Gedanke, aber ich kann nicht scheinen zu finden, wo ich mit meinem Plugin schiefgegangen habe und ein Fehler wäre sehr hilfreich!

War es hilfreich?

Lösung 2

Cake 1.2

Es ist ein Hack und es ist hässlich cus Sie Kernkuchen Dateien bearbeiten müssen, aber das ist, wie ich es tun: \ Kuchen \ Libs \ class_registry.php: line 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 empfiehlt Linie auf $ streng auf true in der init-Funktion Ändern 95 von Cake\Utility\ClassRegistry.php

Siehe Kuchen Api Docs für init

ClassRegistry.php - init-Funktion

Andere Tipps

Es gibt immer die Möglichkeit, tatsächlich die Modell-Datei und legen var $ useTable = false zu erstellen.
Wenn dies nicht das, was Sie für Fragen und das Modell und seine Verbände tatsächlich existieren, aber Kuchen scheint nicht in der Lage zu sein, sie zu finden, werden Sie die Namen aller Modelle und ihre Klassennamen verdreifachen müssen überprüfen sowohl in der aktuellen Bestimmung des Modells und in den Assoziations Definitionen.

AFAIK Sie die automatische Modellierung nicht deaktivieren können.

Mit

var $useTable = false;

in Ihrem Modell Definition.

Löschen Sie alle Cache-Dateien (alle Dateien unter app / tmp, halten Sie die Ordner)

In den meisten Fällen, in denen Modelle scheinen auf unerwartete Weise zu handeln, die oft nicht sie Änderungen enthalten, die Sie gemacht haben, ist es, weil die Kuchen eine alte Cache-Version des Modells wird useing.

Uh ... wo fangen wir an. Zunächst wird, wie Alexander vorgeschlagen, löschen Sie den App-Cache.

Wenn Sie immer noch das gleiche Verhalten bekommen, gibt es wahrscheinlich etwas falsch mit den Klassen- und / oder Dateinamen.

Beachten Sie die Regeln für Controller:

* classname: BlastsController
* filename: blasts_controller.php

für Modell:

* classname: Blast
* filename: blast.php

nicht das foget zum die unregelmäßigen Beugungen zu behandeln richtig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top