I am redirecting from one action (executeProcess) to another (executeIndex). I want to be able to pass a parameter/variable along, without using GET (e.g. $this->re
Why dont you use sessions to store values before redirecting, and then getting them on the other action after you redirected? like:
class ActionClass1 extendes sfActions
{
public function executeAction1(sfWebRequest $request)
{
[..]//Do Some stuff
$this->getUser()->setAttribute('var',$variable1);
$this->redirect('another_module/action2');
}
}
class ActionClass2 extends sfActions
{
public function executeAction2(sfWebRequest $request)
{
$this->other_action_var = $this->getUser()->getAttribute('var');
//Now we need to remove it so this dont create any inconsistence
//regarding user navigation
$this->getUser()->getAttributeHolder()->remove('var');
[...]//Do some stuff
}
}
Another solution that does not redirect the browser
class someActionClass extends sfActions{
function myExecute(){
$this->getRequest()->setParameter('myvar', 'myval');
$this->forward('mymodule', 'myaction')
}
}
//Here are your actions in another module
class someActionClass2 extends sfActions{
function myExecute2(){
$myvar = $this->getRequest()->getParameter('myvar');
}
}
`
The best way of passing a variable between two Actions is by using FlashBag
public function fooAction() {
$this->get('session')->getFlashBag()->add('baz', 'Some variable');
return $this->redirect(/*Your Redirect Code to barAction*/);
}
public function barAction() {
$baz = $this->get('session')->getFlashBag()->get('baz');
}
To use the variable in Twig template use this --
{% for flashVar in app.session.flashbag.get('baz') %}
{{ flashVar }}
{% endfor %}