2

Lithiumのコントローラーredirect()メソッドは、実際のHTTPリダイレクトを実行します。しかし、HTTPリダイレクトなしでリクエストを別のコントローラー/アクションに単純に転送する方法はありますか?

たとえば、認証レイヤーを追加し、ユーザーを「/ auth / login」ページにリダイレクトするのではなく、ユーザーが要求したページのコンテンツではなく、ログインレイアウトとテンプレートがレンダリングされるとします。次に、フォームを送信して認証すると、要求したページに既に表示されます。Zendフレームワークには、_forward()メソッドに似たものがあります。

ありがとう!

4

1 に答える 1

4

ほとんどの場合、約 2 行のコードで実行できるため、メソッドはありません。

<?php

    namespace my_app\controllers;

    use lithium\core\Libraries;

    class PostsController extends \lithium\action\Controller {

        public function index() {
            $forward = Libraries::instance("controllers", "Auth", [
                'request' => $this->request
            ]);
            return $forward($this->request, ['action' => 'login']);
        }
    }
?>
于 2013-01-23T15:38:36.120 に答える