2012-10-26 17 views
5

Używam Kohana 3.3.0 i mam kontroler, który ma zapisywać artykuły blogów w bazie danych, a następnie przekierowywać na stronę główną, mój Kod jest w następujący sposób: -Błąd wyjątku Kohana [Błąd krytyczny]: Wezwanie do niezdefiniowanej metody Żądanie :: przekierowanie()

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); 
} 

w artykule zapisuje do bazy danych, ale linia przekierowanie daje błąd: -

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

Proszę dać mi znać, jak mogę zrobić przekierowanie.

Dzięki

Odpowiedz

4

Tak Zapytanie :: przekierowanie nie jest już istnieje. Aby więc łatwo przenieść się z wersji 3.2 do 3.3, rozszerzyłem klasę Kohana_Request i dodałem metodę przekierowania. Wystarczy utworzyć Request.php w klas folder i napisać

class Request extends Kohana_Request {

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

}

Więc będzie można używać zarówno Zamówienie :: przekierować i $ this-> request-> przekierowanie

+0

+1 Dziękuję bardzo Vladimir. Twoje rozwiązanie działało świetnie! – Anthony

0

Kohana 3.3 jest CamelCase pliku keysensitive spróbować zmienić

const INDEX_PAGE = 'index.php/artykuł';

nie forguet zmienić nazwę pliku sterownika Article.php -> Article.php

I zastąpić żądania :: przekierowanie() -> HTTP :: przekierować()

+0

To zbyt wieloznaczne, zbyt niekompletne. –

8

Dostaniesz Exception ponieważ od Kohana 3.3, Request nie ma już metody redirect.

można naprawić przykład poprzez zastąpienie

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

z

HTTP::redirect(self::INDEX_PAGE);

4

w kontrolerze $this->redirect('page');

1

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

Powiązane problemy