J'ai 2 actions dans le même contrôleur. Je trouve un problème en passant des valeurs affichées de la 1ère action à la 2ème. J'ai essayé d'utiliser la méthode forward http://symfony.com/doc/current/controller/forwarding.htmlPasser des valeurs d'une action à une autre dans le même contrôleur dans symfony
BTW les deux actions (le 'forwarding' et le 'forwarded to') ont des formulaires avec des soumissions.
Le problème est que je n'ai pas pu accéder à la variable "$ param1" dans la deuxième action. Il va toujours nul.
Y at-il quelque chose que j'ai manqué ici?
Voici mon code:
Ceci est la 1ère action:
/**
*
* @Route("/new1", name="command_check1")
*/
public function check1Action(Request $request)
{
$host = new Host();
$form = $this->createFormBuilder($host)
->add("iPaddress", TextType::class)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
$a= $form["iPaddress"]->getData(); //$a= '127.0.0.1'
**$this->forward('AcmeBundle:Command:check2', array('param1' => $a));**
if($this->pingAction($a)==true){
return $this->redirectToRoute('command_check2'); }
}
return $this->render('host/new1.html.twig', array(
'host' => $host,
'form' => $form->createView(),));
}
C'est la 2ème action:
/**
*
* @Route("/new2", name="command_check2")
*/
public function check2Action(Request $request, **$param1**)
{
**var_dump($param1); // here i can get the posted value $param1= '127.0.0.1'**
$host = new Host();
$form = $this->createFormBuilder($host)
->add("login", TextType::class)
->add("password", TextType::class)
->getForm();
$form->handleRequest($request);
**var_dump($param1); // until here it works good $param1= '127.0.0.1'**
if ($form->isSubmitted() && $form->isValid())
{
**// the problem is here after submitting the 2nd form
var_dump($param1); // $param= null**
$b= $form["login"]->getData();
$c= $form["password"]->getData();
}
return $this->render('host/new2.html.twig', array(
'host' => $host,
'form' => $form->createView(),));
}
Pourquoi voulez-vous faire cela? Le transfert n'est pas une bonne pratique dans Symfony. – COil
Je n'ai pas trouvé d'autre solution, j'ai donc essayé la méthode forward. Avez-vous une idée de comment je peux le faire différemment? – User