Я новичок в Zend Framework и борюсь с проблемой, которая кажется простой, но трудно решаемой (по крайней мере, для меня).
У меня есть контроллер с индексом и списком действий.В индексном действии я собираю пользовательский ввод для построения запроса, подготавливаю запрос Db Select и использую пространство имен сеанса для его сохранения.В списке действий запрос извлекается из пространства имен сеанса и представляется в виде сетки.
Проблема заключается в том, что дублирование веб-страницы в браузере сохраняет старый сеанс.Как лучше всего решить эту проблему?Я знаю, что это не очень хорошая практика использовать сессии таким образом, но я не могу найти альтернативу.
Вот чего я хочу достичь:
класс QueryController extends Zend_Controller_Action {
public function indexAction()
{
$form = new Application_Form_Query();
$form->submit->setLabel('Search');
$this->view->form = $form;
if ($this->getRequest()->isPost()) {
$formData = $this->getRequest()->getPost();
// here ideally I would like to redirect to listAction with $formData
// but don't know how to achieve that,
// with _forward it displays both form and the grid on the same page
// this tip was provided by ArneRie (thanks ArneRie)
}
public function listAction()
{
// I want this action to be called everytime after form input and
// cycle without going back to form (indexAction)
// get the $formData from indexAction() or reposted in listAction()
// build query based on $formData
// display grid
// re-post data back to request object
}
}
Примечание: приветствуются любые другие предложения, например, лучшая практика с примером.