RESTful MVC приложение - PullRequest
       3

RESTful MVC приложение

2 голосов
/ 19 марта 2012

Я пишу свое первое веб-приложение MVC и стараюсь сделать его как учебник и RESTful, насколько это возможно.

Это в основном система заказов клиентов. У меня есть следующие URL-адреса маршрутизации на следующие методы контроллеров

url - контроллер - метод

/ индекс customer-controller клиентов (показывает список всех клиентов)

/ customer / 1 представление «клиент-контроллер» (показывает данные клиента с id = 1)

/ указатель контроллера заказов (показывает список всех заказов)

/ orders / 1 представление диспетчера заказов (показывает детали заказа с order_no = 1)

что я хочу сделать, это добавить страницу, которая показывает список заказов, связанных с конкретным клиентом, по адресу: / customer / 1 / orders. Что я не уверен, так это то, к какому контроллеру он должен привязываться и к какому методу.

Должен ли он идти в контроллере клиентов, в контроллере заказов или должен быть новый контроллер заказов клиентов?

Любая помощь, советы, комментарии высоко ценится,

спасибо

джим

1 Ответ

2 голосов
/ 21 марта 2012

Как я понимаю, вы просто применяете фильтр к списку всех заказов. И по этой причине было бы более разумно использовать контроллер Orders.

Кроме того, вы можете пересмотреть свою политику маршрутизации. ИМХО, было бы лучше иметь что-то вроде этого: /:controller((/:action)/:id), со значением по умолчанию index или list для действия. Вот примеры просмотра в этом шаблоне:

/orders               << all of the orders
/orders/customer/2    << data for customer_id = 2
/orders/locations     << orders , ordered by location
/orders/customer      << orders , ordered by customer
/customers            << all curomers
/order/details/1      << info for single order with id = 1

Возможно, вам будет полезно изучить, как Kohana3 выполняет маршрутизацию. При всех своих проблемах маршрутизация является одной из лучших функций, которые имеют.

Ну ... только мои два цента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...