2

Lithium 中的控制器 redirect() 方法执行实际的 HTTP 重定向。但是有没有一种方法可以简单地将请求转发到另一个控制器/操作而无需 HTTP 重定向?

例如,假设我想添加一个身份验证层,而不是将用户重定向到“/auth/login”页面,而是呈现登录布局和模板,而不是他们请求的页面的内容。然后,当他们提交表单并进行身份验证时,他们已经在他们请求的页面上。Zend 框架有类似的 _forward() 方法。

谢谢!

4

1 回答 1

4

没有方法,主要是因为您可以在大约两行代码中完成:

<?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 回答