Lithium 中的 Controller redirect() 方法执行实际的 HTTP 重定向。但是有没有一种方法可以简单地将请求转发到另一个 Controller /操作而不需要 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']);
}
}
?>
关于frameworks - 锂远期请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464643/