Zend Framework: 1 запрос кажется устаревшим - PullRequest
2 голосов
/ 26 июля 2010

Кажется, я столкнулся со странной ошибкой, когда параметры моего запроса устарели из-за 1 запроса

мой логин @ pastebin

Я пытался проиллюстрировать свою точку зрения на видео @ screenr

1 Ответ

1 голос
/ 26 июля 2010

Работает точно так же, как и должно быть, это предполагаемое поведение помощника FlashMessenger.

FlashMessenger хранит добавленные вами сообщения в сеансе. только загружает их из сеанса при создании нового объекта FlashMessenger; тогда происходит запрос next . В этом весь смысл FlashMessenger; передавать сообщения от одного запроса к другому; не передавать сообщения в рамках одного запроса (для этого вы просто используете обычные переменные или хранилище, например Zend_Registry).

Что вы обычно делаете с FlashMessenger, так это то, что вы сначала добавляете сообщение, а затем перенаправляете на ту же (или другую) страницу, используя, например,. метод _redirect или помощник по действиям Redirector. Удобно создать подкласс класса Zend_Controller и добавить свой собственный вспомогательный метод, который позволяет вам выполнять оба этих действия в одном методе, например в методе с именем _flash. Например, я обычно делаю что-то вроде этого:

<?php

class App_Controller extends Zend_Controller_Action
{
    protected $_messages = array();

    protected function _flash($message, $to = false)
    {
        $flashMessenger = $this->_helper->getHelper('FlashMessenger');
        if ($message)
            $flashMessenger->addMessage($message);
        if (!$to)
            $to = $this->_request->getRequestUri();
        $this->_redirect($to);
    }

    public function postDispatch()
    {
        // Set flash messages
        $flashMessenger = $this->_helper->getHelper('FlashMessenger');
        $this->view->messages = array_merge($this->_messages, $flashMessenger->getMessages());
    }
}

Затем я просто делаю $this->_flash("My message");, что сделает две вещи: 1) Добавить сообщение в стек флеш-сообщений и 2) Обновить страницу.

Вы также можете видеть, что у меня есть protected $_messages, причина этого в том, что если я хочу отобразить сообщение без обновления страницы, я могу просто добавить сообщение в этот массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...