Kohana ErrorException [致命错误]:调用未定义的方法Request :: redirect()

时间:2012-10-26 14:13:28

标签: kohana-3

我正在使用Kohana 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()

请告诉我如何进行重定向。

由于

5 个答案:

答案 0 :(得分:8)

您获得了例外,因为自Kohana 3.3起,Request不再使用方法redirect

您可以通过替换

来修复您的示例

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

HTTP::redirect(self::INDEX_PAGE);

答案 1 :(得分:4)

控制器中的

$this->redirect('page');

答案 2 :(得分:4)

是的,Request :: redirect不再存在。因此,为了轻松地从3.2移动到3.3,我扩展了Kohana_Request类并添加了重定向方法。只需在文件夹中创建 Request.php ,然后编写

即可
  

类请求扩展Kohana_Request {

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

}

因此,您可以同时使用 Request :: redirect $ this-> request-> redirect

答案 3 :(得分:1)

$这 - >重定向( '文章/索引');

答案 4 :(得分:0)

Kohana 3.3是File CamelCase keysensitive尝试更改

const INDEX_PAGE ='index.php / Article';

不要忘记重命名您的控制器文件article.php - > Article.php

并替换Request :: redirect() - > HTTP ::重定向()