我正在使用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()
请告诉我如何进行重定向。
由于
答案 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 ::重定向()