2012-10-26 13 views
5

Kohana 3.3.0 kullanıyorum ve bir veritabanına blog makalelerini kaydetmesi, ardından ana sayfaya yönlendirmesi gereken bir denetleyicim var. kod aşağıdaki gibidir: -Kohana ErrorException [Önemli Hata]: Tanımlanmamış yöntem çağrısı İstek :: yönlendirme()

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

makale veritabanına kaydeder ancak yönlendirme hattı hatası veriyor: -

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

bana ben yönlendirme yapmak nasıl bildirin.

Teşekkür

cevap

4

Evet içinde

HTTP::redirect(self::INDEX_PAGE);

+0

+1 Çok teşekkürler @Vladimir. Çözümünüz harika çalıştı! – Anthony

0

Kohana 3.3

const INDEX_PAGE = 'index.php/Madde' değiştirmek denemek keysensitive Dosya CamelCase olduğu; > Article.php

Ve) (İstek :: yönlendirme yerine - -> HTTP :: Sen İstisna alıyoruz) (

+0

Bu çok belirsiz, çok eksik. –

8

yönlendirme

Denetleyiciniz dosya Article.php adlandırmak forguet yok çünkü Kohana 3.3'ten itibaren Request artık redirect yöntemine sahip değildir.

Sen iste :: yönlendirme artık değil var, denetleyicinizdeki $this->redirect('page');

4

ile

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

değiştirerek örnek düzeltebilirsiniz. Böylece 3,2'den 3,3'e kolayca taşınabilmek için Kohana_Request sınıfını genişletmiş ve yönlendirme yöntemini ekledim. Sadece sınıflarında klasör Request.php oluşturmak ve

class Request extends Kohana_Request {

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

}

Yani isteği her ikisini de kullanmak mümkün olacak yazma :: ve $ this-> request-> yönlendirme yönlendirme

1

$ this-> ('haber/index') yönlendirme;