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

Kohana 3.3 の時点でRequestmethod がなくなったため、例外が発生しています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 クラスを拡張し、リダイレクト メソッドを追加しました。クラスフォルダーに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 に答える