Вопрос по request, lithium, frameworks, forward – Литиевый прямой запрос

2

Метод контроллера redirect () в Lithium выполняет фактическое перенаправление HTTP. Но есть ли способ просто переслать запрос другому контроллеру / действию без перенаправления HTTP?

Например, я хочу добавить слой аутентификации, а не перенаправлять пользователя на "/ Авт / войти в систему» страница, макет входа и шаблон отображаются, а не содержимое страницы, которую они запрашивали. Затем, когда они отправляют форму и аутентифицируются, ониуже на странице, которую они просили. Zend Framework имеет нечто подобное с методом _forward ().

Спасибо!

Ваш Ответ

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']);
        }
    }
?>
Я могу'не верьте, насколько это чисто / сексуально! (Не каламбур) Martin Samson
для меня вместо того, чтобы возвращать $ forward, мне нужно было сделать рендер прямо там, чтобы заставить вещи работать `` `$ forward->рендеринга (); выход(); `` ` AKnox

Похожие вопросы