Lithium 中的控制器 redirect() 方法执行实际的 HTTP 重定向。但是有没有一种方法可以简单地将请求转发到另一个控制器/操作而无需 HTTP 重定向?
例如,假设我想添加一个身份验证层,而不是将用户重定向到“/auth/login”页面,而是呈现登录布局和模板,而不是他们请求的页面的内容。然后,当他们提交表单并进行身份验证时,他们已经在他们请求的页面上。Zend 框架有类似的 _forward() 方法。
谢谢!
Lithium 中的控制器 redirect() 方法执行实际的 HTTP 重定向。但是有没有一种方法可以简单地将请求转发到另一个控制器/操作而无需 HTTP 重定向?
例如,假设我想添加一个身份验证层,而不是将用户重定向到“/auth/login”页面,而是呈现登录布局和模板,而不是他们请求的页面的内容。然后,当他们提交表单并进行身份验证时,他们已经在他们请求的页面上。Zend 框架有类似的 _forward() 方法。
谢谢!
没有方法,主要是因为您可以在大约两行代码中完成:
<?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']);
}
}
?>