2010-11-28 7 views
0

Ich habe eine Methode in meinem Controller, die allgemeine Seitenanforderungen behandelt, die für meine öffentlichen Seiten gedacht sind. Ich möchte einen 404 erzeugen, wenn ich nicht mit dem übereinstimmen kann, was in der URL ist und was ich weiß, sind die statischen Inhaltsseiten.Unbekannter Fehler beim Versuch, 404 Seite zu werfen

So mache ich das:

$opts = array(
'name' => 'Some message', 
'code' => 404, 
'message' => 'Your message here', 
'base' => $this->base 
); 
$this->layout = 'blank'; 
$this->cakeError('error', array($opts)); 

Das Problem ist ich diesen Fehler auf einem 404 Anfrage erhalten:

Hinweis (8): Undefined variable: javascript [APP \ Ansichten \ Layouts \ default.ctp, Zeile 10]

Die "$ this-> layout = 'blank';" ist mein Versuch, zu einer leeren Layoutdatei umzuleiten, die kein CSS, JS, etc. enthält. Aber es ignoriert das vollständig und lädt die Standardvorlage, die JS enthält. Ich vermute, dass die Fehlerroutinen, die 404 Seiten laden, keinen Zugriff auf diese Methoden haben, die die Quelle des Fehlers sind.

Aber ich kann nicht herausfinden, wie mit diesem Fehler umzugehen.

Antwort

2

Zuerst gibt es einen kleinen Fehler in Ihrem Code. Ihr zweiter Parameter für cakeError() ist bereits ein Array. Es sollte sein:

$this->cakeError('error', $opts); 

Zweitens Sie

$this->layout = false; 

festlegen können, wenn Sie ein leeres Layout möchten.

+0

Danke. Ich habe eine andere SO-Frage gestellt, um klarer zu sein. – Justin