Почему-то кажется, что когда я использую gotoSimple
в следующей настройке, мои данные будут сохранены дважды с помощью $object->save()
в secondAction()
.
public function firstAction(){
// get data
// process postdata, if any
if( $form->isValid( $postdata ) ) {
$this->_helper->getHelper( 'Redirector' )->gotoSimple( 'second' );
}
}
public function secondAction(){
// get data
// process postdata, if any
if( $form->isValid( $postdata ) ) {
if( $object->save( $postdata ) ) {
// set flashmessage
$this->_helper->getHelper( 'Redirector' )->gotoSimple( 'index' );
}
}
}
После нескольких часов отладки я пришел к выводу, что команда gotoSimple () в secondAction()
вызывает secondAction()
, прежде чем она перенаправляется на indexAction()
. Я убедился, что indexAction()
невозможно перенаправить обратно на secondAction()
.
Еще интереснее: это происходит только в IE7 и в IE8. Кто-нибудь может указать мне в любом возможном направлении, откуда может появиться это странное поведение и как я могу это решить?
UPDATE
Используя следующие строки кода в secondAction()
прямо перед командой gotoSimple()
, я могу быть на 100% уверен в том, что каким-то образом secondAction()
вызывается дважды, когда я нажимаю кнопку отправки:
if( isset( $_SESSION['xyz-zyx'] ) ) {
$this->_helper->getHelper( 'flashMessenger' )->addMessage( 'I\'ve already been here!' );
unset( $_SESSION['xyz-zyx'] );
}
$_SESSION['xyz-zyx'] = true;
Есть идеи?