如何通过响应/请求发送数组?

珍珠

我有以下问题:

我使用具有以下两个功能的控制器:

两种功能都有自己的路线@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']
            ));

}

在函数indexAction中,我应该转发到下一个函数(resultAction),因为我需要一个新的URL。以及我需要的数组$的数据,其产生的作用的indexAction,在功能resultAction,但我不知道,我怎么可以调用路由与数组作为参数。

路由文件如下所示:

dataHome:
pattern:  /home
defaults: { _controller: "GeneralCommonBundle:DataHome:index"}

result:
pattern:  /{limit}/{offset}/result
defaults: { _controller: "GeneralCommonBundle:DataHome:result", limit: 20, offset: 0 }

我试图使用全局变量(我知道这不是一个很好的范式),因为这些函数位于同一Controller中,但没有用。同样,我尝试将$ data数组放入Response ..但它也没有起作用。

如何使用数组作为参数调用路由?还是存储此Array临时文件,以便在转发后可以使用它?

谢谢您的支持!!

Generwp

您当然可以在路由中作为参数发送,这是我的快速测试:

public function testAction()
{
    $testArray = [
        'data1' => 'data',
        'data2' => 'data'
    ];



    return $this->forward('App\Controller\TestController::otherAction', [
        'data' => serialize($testArray)
    ]);
}

public function otherAction($data)
{
    $data = unserialize($data);

    return new JsonResponse($data);
}

但是请记住,GET对于字符串长度有一些限制,我认为使用会话变量会更合适,只需在indexAction中设置序列化的数据,然后在resultAction中获取它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过SSL发送请求?

如何通过带有棘轮的单个websocket发送请求发送对象数组?

如何从Akka HTTP POST请求读取JSON正文并将最终响应作为JSON数组发送

如何发送POST请求并获得文件响应?

如何使用Java发送请求的多个响应

通过HTTP请求发送JSON,但响应为NULL

如何通过邮递员以JSON格式在请求正文中发送对象数组?

如何通过 Angular 的 HttpClient 发送 POST 请求?

NodeJS:如何通过请求POST发送文件

如何保护通过HTTP请求发送的值?

如何通过SSH主机发送请求

如何通过Swift发送POST请求?

如何通过套接字发送HTTPS请求?

如何通过python发送soap请求?

如何覆盖通过API发送发布请求时将响应的CharField max_length验证错误消息?

如何在URL请求中发送数组

如何发送带有参数的邮递员Get-Request作为另一个请求的响应数组

使用AngularJS的$ http服务通过GET请求发送数组

通过HTTP请求将Matplotlib图形发送为numpy数组

如何使用HTML发送SOAP请求并接收响应?

如何向 GCDWebServer 请求发送两个响应

如何根据请求从JS文件发送JSON响应?

如何发送并行的GET请求并等待结果响应?

基于事件的编程,如何响应发送请求的实例

如何在Golang中从HTTP GET请求发送JSON响应?

如何从Java发送压缩的(gzip)JSON作为对Ajax请求的响应?

如何发送http请求并检索json响应C ++ Boost

Python:如何发送多个HTTP请求并接收响应?

Django如何读取http请求并发送http响应