如何在Cake 3.x中重新路由嵌套资源或重命名嵌套资源?

时间:2016-03-11 02:38:38

标签: cakephp cakephp-3.0

现在,当我使用这样的嵌套资源时:

 $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

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案:

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

希望这有帮助!