2013-04-17 10 views
5

dostaję następujący błąd:CakePHP: jak używać kontrolera :: Referer() w widoku

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] 

spowodowane przez to:

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

Dlaczego?

Odpowiedz

14

Nie. Zamiast tego używasz obiektu żądania:

$this->request->referer(); 

Sterownik nie robi nic innego wewnętrznie.

Ostrożnie: referer może być pusty, a więc w tym przypadku możesz chcieć podać rezerwę.

pamiętać także opcjonalny param $ lokalne:

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

+0

Dzięki. Z jakiegoś powodu, gdy wpisuję adres URL bezpośrednio (bez odnośnika), zwraca on mój katalog główny (example.com) zamiast mojego zastępstwa. Każdy pomysł, dlaczego? – emersonthis

+0

To też mi się przydarza. Na mojej lokalnej kopii, $ this-> referer() działa dobrze, ale na serwerze to tylko wypluwanie nazwy domeny. –