2013-04-17 3 views
5

ich die folgende Fehlermeldung erhalten:CakePHP: Wie Regler :: referer() in einer Ansicht verwenden

Strict (2048): Non-static method Controller::referer() should not be called statically, 
assuming $this from incompatible context [APP/View/Questions/admin_edit.ctp, line 20] 

durch diese verursacht:

//in app/View/Questions/admin_edit.ctp 
echo $this->Html->link('Cancel', Controller::referer()); 

Warum?

Antwort

14

Sie nicht. Sie verwenden stattdessen das Anfrageobjekt:

$this->request->referer(); 

Der Controller macht intern nichts anderes.

Achtung: Der Referer kann leer sein und Sie möchten in diesem Fall einen Fallback bereitstellen.

Beachten Sie auch den optionalen param $ local:

@param boolean $local If true, restrict referring URLs to local server

+0

Dank. Aus irgendeinem Grund, wenn ich die URL direkt (kein Referer) eingib, gibt es mein Dokumentenstammverzeichnis (example.com) anstelle meines Fallbacks zurück. Irgendeine Idee warum? – emersonthis

+0

Das passiert mir auch. Auf meiner lokalen Kopie funktioniert $ this-> referer() gut, aber auf dem Server wird nur der Domainname ausgegeben. –

Verwandte Themen