2016-03-11 3 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

попробуйте Learn Graphql, тогда вы забудете все старые методы отдыха – stackdave

ответ

1

Одно из возможных решений:

  • Разделить логику в «indexStandalone» и «indexNested» защищенных методов.
  • В методе действия индекса проверьте, прошел ли event_id в качестве параметра.
  • Если event_id был в params - call indexNested, в противном случае вызовите indexStandalone.

Надеюсь, это поможет!

Смежные вопросы