2017-07-17 1 views
0

wie Debuggen delete() in CakePHP? Wenn ich tun:Debuggen von Delete() in CakePHP

debug($this->Sessions->delete($s)); 

ich diesen Fehler:

{ 
    "message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column \u0027session_id\u0027 in \u0027where clause\u0027", 
    "url": "\/api\/sessions\/delete\/2856", 
    "code": 500, 
    "file": "\/var\/www\/vendor\/cakephp\/cakephp\/src\/Database\/Statement\/MysqlStatement.php", 
    "line": 39 
} 

EDIT: mein Problem gelöst, hatte ich die session_id Spalte "sessions_id" in der Tabelle durch einen Fehler genannt. Ich habe das aktualisiert und es hat mein Problem gelöst. Allerdings würde ich gerne wissen, wie man delete() und find() richtig debuggt. Ich habe bemerkt, dass es eine Debugging-Konsole bin/cake console gibt. Dann help, um Sachen zu debuggen, aber ich weiß nicht, wie man es benutzt, und scheint keine Dokumentation darüber zu finden. Kann mir jemand helfen? Vielen Dank.

+1

Sie sollten wahrscheinlich klären, was genau Sie meinen, wenn Sie "_debug_" sagen. – ndm

+0

@ndm Geben Sie eine detailliertere Fehlermeldung und idealerweise zusammen mit einem Backtrace zu der exakten Zeile, die das Problem verursacht. – toast

Antwort

0

Die Fehlermeldung stammt direkt aus dem DBMS, nicht von CakePHP, und es gibt Ihnen so ziemlich alles, was Sie wissen müssen, warum die Abfrage fehlgeschlagen ist, gibt es nicht wirklich eine Möglichkeit, mehr Informationen darüber zu erhalten.

Wenn Sie nicht über die Zeile sprechen, auf die die Ausnahme geworfen wird, wäre das Zeigen auf eine bestimmte Zeile ziemlich kompliziert, da in diesem Fall keine exakte Zeile ein Problem verursacht, die CakePHP-Seite funktioniert einwandfrei Gut, Sie haben Dinge einfach falsch konfiguriert/benannt, was zu einer nicht funktionierenden SQL-Abfrage geführt hat.

Ich würde vorschlagen, eine ordnungsgemäße IDE und einen Debugger wie XDebug zu verwenden, der auf Ausnahmen anhalten kann, dann haben Sie Ihre Stacktrace und eine Reihe von kontextuellen Informationen zur Hand, und Sie können problemlos durch den Code. Ein einfacher Stacktrace kann auch in den Protokollen gefunden werden (/logs/*.log).