Ich habe folgende Frage:So senden Sie ein Array nach Antwort/Anforderung?
ich einen Regler mit diesen beiden Funktionen verwenden:
Beide Funktionen eine eigene Route @see
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']
));
}
i weiterleiten soll in der Funktion index Routing hat zur nächsten Funktion (resultAction), weil ich eine neue URL brauche. Auch brauche ich die Array $ Daten die in der Funktion indexAction generiert wird, in der Funktion resultAction, aber ich weiß nicht, wie ich eine Route mit einem Array als Parameter aufrufen kann.
Die Routing-Datei sieht so:
dataHome:
pattern: /home
defaults: { _controller: "GeneralCommonBundle:DataHome:index"}
result:
pattern: /{limit}/{offset}/result
defaults: { _controller: "GeneralCommonBundle:DataHome:result", limit: 20, offset: 0 }
ich eine globale Variable zu verwenden versucht, (ich weiß, es ist kein schönes Paradigma), da die Funktionen in dem gleichen Controller sind, aber es hat nicht funktioniert. Ich versuchte auch, das $ Datenarray in die Antwort zu setzen .. aber es funktionierte auch nicht ..
Wie kann ich eine Route mit einem Array als Parameter aufrufen? Oder speichern Sie dieses Array vorübergehend, dass ich es nach der Weiterleitung verwenden kann?
Danke für Ihre Unterstützung !!
Haben Sie versucht, ein serialisiertes Array zu senden und dann im benötigten Controller zu deserialisieren? – Generwp
Hallo ich habe es versucht (als Sitzungsvariable), aber wie Sie es senden würden ?, in einer Sitzungsvariablen, in der Antwort? oder als Parameter in der Route? – helmi