2016-03-11 52 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。

希望這有助於!