5

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

请让我知道如何进行重定向。

谢谢

4

4 回答 4

8

你得到 Exception 因为从 Kohana 3.3 开始,Request不再有 method redirect

您可以通过替换来修复您的示例

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

HTTP::redirect(self::INDEX_PAGE);

于 2012-10-31T06:08:15.463 回答
5

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

class Request extends Kohana_Request {

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

}

所以你将能够同时使用Request::redirect$this->request->redirect

于 2012-11-08T06:34:56.530 回答
4

在你的控制器中$this->redirect('page');

于 2012-11-08T00:45:18.060 回答
1

$this->redirect('文章/索引');

于 2013-07-06T06:08:57.637 回答