Frage

, fragte ich diese Frage auf der Google-Gruppe CakePHP aber fanden keine Auflösung, wird so hoffentlich mehr Glück hier.

Ich habe ein bisschen auf CakePHP entwickelt und beschlossen, eine haben, localhost-Version auf MAMP so, dass ich meine App Leute Demo ohne auf eine Internetverbindung angewiesen zu sein.

Wir haben ein paar komplexen MySQL-Abfragen gemacht werden und mit

$this->query('SELECT...');

Wir haben diese in den entsprechenden Modellen innerhalb einer Funktion entfernen all diese Logik von der Steuerung gelegt. Daher von der Steuerung werden wir so etwas wie haben

$this->Users->getMeSomething($variable);

, das geht an die user.php Modell und führt diese Funktion. Dies funktioniert gut auf unser Leben und Entwickler Websites, aber aus irgendeinem Grunde auf MAMP Ich erhalte eine Fehlermeldung, wenn diese Art von Anruf getätigt wird, als ein Beispiel für einen der Anrufe:

Fehler:

Warning (512): SQL Error: 1064: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near '__getUsersForUsers' at line 1 [CORE/cake/
libs/model/datasources/dbo_source.php, line 525]

Kontext:

DboSource::showQuery() - CORE/cake/libs/model/datasources/
dbo_source.php, line 525
DboSource::execute() - CORE/cake/libs/model/datasources/
dbo_source.php, line 201
DboSource::fetchAll() - CORE/cake/libs/model/datasources/
dbo_source.php, line 336
DboSource::query() - CORE/cake/libs/model/datasources/dbo_source.php,
line 297
Model::call__() - CORE/cake/libs/model/model.php, line 441
Overloadable::__call() - CORE/cake/libs/overloadable_php5.php, line 52
AppModel::__getUsersForUsers() - [internal], line ??
UsersController::view() - APP/controllers/users_controller.php, line
401
Object::dispatchMethod() - CORE/cake/libs/object.php, line 118
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 227
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 194
[main] - APP/webroot/index.php, line 88

Linie 88 auf Webroot ist dies: $ Dispatcher-> dispatch ($ url);

Ich habe versucht, beide 1.2 und 1.2.5 von CakePHP. MySQL auf MAMP ist 5.1.31 und auf meinem Gastgeber, Mediatemple, ist 5.1.26-rc

Vielen Dank für jede Hilfe

War es hilfreich?

Lösung 2

eine Lösung gefunden. Es hat nichts mit MAMP zu tun, in der Tat haben wir diesen Fehler auf unserem Dev-Server schließlich gefunden, aber nicht unseren Live-Server.

Im Grunde waren die Kuchen Kern der verschiedenen auf beiden Servern - aber genauestens so (war RC, der andere die letzte war). Je älter man konnte die HABTM Modell Beziehung interpretieren, aber der neuere Kern des nicht, wenn Sie sie explizit angeben (dies muss ein Fehler sein, da ich alle Namenskonventionen gefolgt).

Also hier ist, wie es funktioniert: - Sie ein Modell user.php haben und tag.php - In user.php, erhalten Sie eine HABTM Beziehung mit dem Tag Modell - In diesem Array, fügen Sie das Feld: 'mit' => 'UsersTag' - Machen Sie dasselbe für tag.php

Auf diese Weise CakePHP muss nicht herausfinden, was der Modellname ist (obwohl es in der Lage sein soll)

Andere Tipps

Was passiert, wenn Sie Kuchen zwingen, um die Abfrage zu Echo und Sie versuchen, es manuell in einem mySQL-Client ausführen? Es sieht aus wie die lokale Version ist eine andere Abfrage als die Version auf Ihrem Rechner zu schaffen -. Da mySQL über Syntax beschwert

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