2017-04-17 14 views
0

Symfony 3コントローラアクションでは、リクエストにパラメータを追加し、307リダイレクトを介して別のコントローラアクションに送信します。symfony 3:コントローラアクションで新しいリクエストパラメータを設定してからリダイレクト

/** 
* @Route("/first", name="my_first_action") 
*/ 
public function firstAction(Request $request) 
{ 
    $request->request->set('new_param', 1); 

    dump($request->request->all()); // new param is present 

    return $this->redirectToRoute('my_second_action', [ 
     'request' => $request 
    ], 307); 
} 

リダイレクト後、新しいパラメータは要求に含まれません。

/** 
* @Route("/second", name="my_second_action") 
*/ 
public function secondAction(Request $request) 
{ 
    dump($request->request->all()); // new param is not present 
    exit; 
} 

リクエストが307リダイレクト経由で新しいアクションに渡されたときに利用できるように、パラメータを追加するにはどうすればよいですか?

答えて

0

リダイレクトでそのようなオブジェクトを渡すことはできません。しかし、あなたはあなたに、アレイ内のパラメータを送信し、そのような受信ルートでそれらを扱うことができます。

/** 
* @Route("/first", name="my_first_action") 
*/ 
public function firstAction(Request $request) 
{ 
    return $this->redirectToRoute('my_second_action', [ 
     'new_param' => 1 
    ], 307); 
} 

/** 
* @Route("/second/{new_param}", name="my_second_action") 
*/ 
public function secondAction($new_param) 
{ 
    dump($new_param)); // Either dump or use the parameter 
    exit; 
} 

あなたはより多くのパラメータが必要な場合は、あなただけのルートに追加することができます。

関連する問題