2012-10-26 17 views
5

Ich benutze Kohana 3.3.0 und ich habe einen Controller, der Blogartikel in einer Datenbank speichern und dann auf die Homepage umleiten soll, meine Code ist wie folgt: -Kohana ErrorException [Schwerwiegender Fehler]: Aufruf zu undefinierter Methode Request :: redirect()

class Controller_Article extends Controller { 

const INDEX_PAGE = 'index.php/article'; 

public function action_post() { 

$article_id = $this->request->param('id'); 
$article = new Model_Article($article_id); 
$article->values($_POST); // populate $article object from $_POST array 
$article->save(); // saves article to database 

$this->request->redirect(self::INDEX_PAGE); 
} 

der Artikel speichert in die Datenbank aber die Umleitung Linie gibt den Fehler: -

ErrorException [ Fatal Error ]: Call to undefined method Request::redirect() 

Bitte lassen Sie mich wissen, wie ich die Umleitung tun.

Dank

Antwort

4

Ersatz existiert Ja, anfordern :: Umleitung ist nicht länger. Um also leicht von 3.2 auf 3.3 zu wechseln, habe ich die Kohana_Request-Klasse erweitert und die Redirect-Methode hinzugefügt. Erstellen Sie einfach request.php in Klassen Ordner und schreiben

class Request extends Kohana_Request {

/** 
* Kohana Redirect Method 
* @param string $url 
*/ 
public function redirect($url) { 
    HTTP::redirect($url); 
} 

}

So können Sie sowohl Antrag auf Verwendung :: umleiten und $ this-> request-> umleiten

+0

+1 Vielen Dank @Vladimir. Deine Lösung hat super funktioniert! – Anthony

0

Kohana 3.3 ist Datei Camelcase keysensitive versuchen

const INDEX_PAGE = 'index.php/Article' ändern;

nicht forguet Ihre Controller Datei article.php umbenennen -> Article.php

Und ersetzen anfordern :: redirect() -> HTTP :: redirect()

+0

Dies ist zu zweideutig, zu unvollständig. –

8

Sie bekommen die Ausnahme denn ab Kohana 3.3, Request hat nicht mehr die Methode redirect.

Sie können Ihr Beispiel beheben, indem

$this->request->redirect(self::INDEX_PAGE);

mit

HTTP::redirect(self::INDEX_PAGE);

4

in Ihrem Controller $this->redirect('page');

1

$ this-> redirect ('article/index');

Verwandte Themen