2016-05-26 148 views
1

我有一个名为Ticket的实体。将来自控制器的对象数组传递给另一个对象。 Symfony2

在我的一个控制器中,我有一个数组或门票,我想发送到其他控制器。

我的第一个控制器:

//some code... 

return $this->redirect($this->generateUrl('tracker_ticket_view', array(
      'TicketId' => $ticket->getId(), 
      'lticket' => $lticket //$lticket contains an array of tickets 
     ))); 

我的另一个控制器:

@Route("/view/{TicketId}/{lticket}", 
* defaults = { "lticket" = null}, 
* name="tracker_ticket_view") 
* @ParamConverter("ticket", class="AtgpTrackerBundle:Ticket", options={"id" = "TicketId"}) 
* @Template() 
*/ 
public function viewAction(Ticket $ticket, Request $request, Array $lticket) 
{  

//some code... 

此代码显然是给了我一个数组为String例外。我猜lticket必须出现在路线中,但symfony不知道要输入什么。

正如我在这里所做的那样,我们可以通过控制器发送唯一的对象,这要归功于Param Converter,但是我不知道如何处理一个对象数组。

回答

1

而不是定义一个/view/{TicketId}/{lticket}路由,将数组传递给查询字符串。

/** 
* @Route("/view/{TicketId}", defaults = { "lticket" = null}, name="tracker_ticket_view") 
* @ParamConverter("ticket", class="AtgpTrackerBundle:Ticket", options={"id" = "TicketId"}) 
* @Template() 
*/ 
public function viewAction(Ticket $ticket, Request $request) 
{ 
    $lticket = $request->query->get('lticket'); 
+0

非常感谢!它确实有效:) – abernard

+0

将答案标记为接受。 – COil

相关问题