2012-10-26 14 views
5

मैं कोहाना 3.3.0 का उपयोग कर रहा हूं और मेरे पास एक नियंत्रक है जो ब्लॉग लेखों को डेटाबेस में सहेजना है और फिर होमपेज पर रीडायरेक्ट करना है। कोड इस प्रकार है: -कोहाना त्रुटि अपवाद [घातक त्रुटि]: अपरिभाषित विधि पर कॉल करें अनुरोध :: रीडायरेक्ट()

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

लेख डेटाबेस से बचाता है, लेकिन रीडायरेक्ट लाइन त्रुटि देता है: -

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

कृपया मुझे पता है कि मैं रीडायरेक्ट कर सकते हैं करते हैं।

धन्यवाद

उत्तर

4

हाँ में

HTTP::redirect(self::INDEX_PAGE);

+0

+1 बहुत बहुत धन्यवाद @Vladimir। आपका समाधान बहुत अच्छा काम किया! – Anthony

0

Kohana 3.3 फ़ाइल केमलकेस keysensitive बदलने

स्थिरांक INDEX_PAGE = 'index.php/लेख' की कोशिश है, > Article.php

और अनुरोध :: रिडायरेक्ट() की जगह - -> HTTP :: अनुप्रेषित()

+0

यह बहुत संदिग्ध, अधूरा है। –

8

आप अपवाद हो रही है

forguet अपने नियंत्रक फ़ाइल article.php का नाम नहीं करते क्योंकि कोहाना 3.3, Request के रूप में अब redirect विधि नहीं है।

आप अपने नियंत्रक $this->redirect('page');

4

साथ

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

बदलकर अपना उदाहरण ठीक कर सकते हैं, अनुरोध :: रीडायरेक्ट अब नहीं है मौजूद है। तो 3.2 से 3.3 तक आसानी से स्थानांतरित करने के लिए मैंने Kohana_Request क्लास को विस्तारित किया और रीडायरेक्ट विधि जोड़ा। बस Request.php फ़ोल्डर बनाने कक्षाओं में और लिखने

class Request extends Kohana_Request {

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

}

तो तुम दोनों अनुरोध का उपयोग करने में सक्षम हो जाएगा :: अनुप्रेषित और $ this-> अनुरोध> अनुप्रेषित

1

$ this-> अनुप्रेषित ('लेख/सूचकांक');

संबंधित मुद्दे