hi all,

I recently toyed around with a little plugin of mine where I thought
it would be appropriate to have components that provide functionality
like commenting. this component I thought should also handle posted
comments and save them.

the first way would have been to have a dedicated route to a dedicated
action saving the comment and redirecting to the url it was called
from. this would mean you'd have to rely on the referrer or that you
have to pass the url to your saving action. but you would loose url
hash parameters like #someinterestingpartofthesite.

the other way I have chosen is to trigger the saving within the
component. unfortunately you have no redirect() method on your
component. So I want to share with you my solution for this:


      /**
       * Post/Redirect/Get (PRG) [EMAIL PROTECTED] 
http://en.wikipedia.org/wiki/Post/Redirect/Get}
       * Fetch the current action, clear the request parameters and
set the request method to get.
       * This will reset the current (and already processed) request
to a vanilla GET request, thus
       * no longer triggering this save method.
       * Then use the current action object to redirect to itself. All
POST data will have been
       * removed from the request.
       */
      $current_action = sfContext::getInstance()->getActionStack()-
>getLastEntry()->getActionInstance();
      $this->getRequest()->getParameterHolder()->clear();
      $this->getRequest()->setMethod(sfRequest::GET);
      $current_action->redirect($current_action->getModuleName().'/'.
$current_action->getActionName());


any thought on this? any reasons to shout 'Oh nooo, don't do THAT!'?

cheers
/christian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to