I、次の質問を有する:レスポンス/リクエストでアレイを送信する方法は?
私はこの二つの機能を持つコントローラの使用:
両方の機能は私が前方べき関数indexActionで
public function indexAction(Request $request)
{
$searchForm = $this->getSearchForm();
$searchForm->handleRequest($request);
**$data** = $searchForm->getData();
if($searchForm->isValid()){
if(!$data['birthdate'] && !$data['birthyear'] && !$data['patientID'] && !$data['patientNO']){
$searchForm->addError(new FormError("Please specify at least one search parameter."));
}
else
{
return $this->forward('GeneralCommonBundle:DataHome:result', array(
'limit' => '20',
'offset' => '0'
));
//return $this->redirect($this->generateUrl('result', array('limit' => '20', 'offset' => '0')));
}
}
. . . . .
}
public function resultAction(Request $request, $limit, $offset){
$repo = $this->getDoctrine()->getManager()->getRepository('DataLiveBundle:DataAPatient');
$qb = $repo->getFindingPatientQuery($data['birthdate'],
$data['patientID'],$data['birthyear'] ,$data['patientNO'], $data['center'], $data['registry'] ,$data['study']);
$total = $repo->countQueryResults($qb);
$qb = $repo->addLimitToQuery($qb, $limit, $offset);
$paginationOptions = array(
'total' => $total,
'limit' => $limit,
'offset' => $offset
);
//$query = $qb->getQuery();
$entities = $repo->getResults($qb);
return $this->render('GeneralCommonBundle:DataHome:show.html.twig', array(
'records'=> $entities,
'isNew' => false,
'paginationOptions' => $paginationOptions,
'newrecord' => false,
'birthdate'=> $data['birthdate'],
'patientID'=> $data['patientID'],
'birthyear'=> $data['birthyear'],
'patientNO'=> $data['patientNO'],
'center' => $data['center'],
'registry' => $data['registry'],
'study' => $data['study']
));
}
ルーティング独自のルート@seeを有します私は新しいURLが必要なので、次の関数(resultAction)に移動します。同様に、配列$ dataがであり、resultActionの関数indexActionでが生成されていますが、パラメータとして配列を持つルートを呼び出す方法はわかりません。
ルーティングファイルはそうなります
dataHome:
pattern: /home
defaults: { _controller: "GeneralCommonBundle:DataHome:index"}
result:
pattern: /{limit}/{offset}/result
defaults: { _controller: "GeneralCommonBundle:DataHome:result", limit: 20, offset: 0 }
機能が同じコントローラーにあるので、私は(私はそれは素敵なparadigmaではありません知っている)は、グローバル変数を使用しようとしましたが、それは作品なかったです。同様に、私は$ data配列をレスポンスに入れようとしましたが、それもうまくいきませんでした。
どのようにパラメータとして配列を持つルートを呼び出すことができますか? このアレイを一時的に保管しておいてください。転送後に使用できますか?
ご協力ありがとうございます。
シリアル化された配列を送信してから、必要なコントローラで逆シリアル化を試しましたか? – Generwp
こんにちは、私は(セッション変数として)それを試してみましたが、あなたはそれをどのように送信するのですか?、セッション変数のResponse?または経路のパラメータとして? – helmi