2016-03-11 53 views
0

现在,当我使用嵌套的资源,像这样:如何重新路由嵌套资源或重命名Cake 3.x中的嵌套资源?

$routes->resources('Events', function ($routes) { 
    $routes->resources('EventTicketSales'); 
});  

这意味着,当我需要使用路由/events/:event_id/event_ticket_sales和这条路线会去EventTicketSalesController和行动index

我想知道是否有可能将/events/:event_id/event_ticket_sales路由到不同的操作,因为我还需要为/event_ticket_sales提供不同的显示方式,并且逻辑对于使用该单一操作来说有点过于混乱。

意思就是说,

我有不同的逻辑来/event_ticket_sales/events/:event_id/event_ticket_sales。并且都使用索引操作。

这就是为什么我想要为每个端点分别执行操作的原因。

的另一个问题是,如果有一种方法对我来说,所有的嵌套路由重命名为/events/:event_id/sales而不是/events/:event_id/event_ticket_sales

+0

将默认路由连接到不同的操作会如何解决具有“太多逻辑”的操作问题? – ndm

+0

我对'/ event_ticket_sales'和'/ events /:event_id/event_ticket_sales'有不同的逻辑。并且都使用当前的索引操作。 这就是为什么我想为每个端点分别执行一些操作的原因。 –

+1

尝试学习Graphql,然后你会忘记所有那些旧的休息方法 – stackdave

回答

1

一个可能的解决方案:

  • 分裂您的逻辑为“indexStandalone”和“indexNested”受保护方法。
  • 在您的索引操作方法中,检查是否已将event_id作为参数传递。
  • 如果event_id在params中 - 调用indexNested,否则调用indexStandalone。

希望这有助于!