2012-03-19 72 views
2

我正在编写我的第一个MVC Web应用程序,我试图尽可能保持它作为教科书和RESTful。RESTful MVC应用程序

它基本上是一个客户订购系统。我有以下网址路由到以下控制器方法

URL - 控制器 - 方法

/客户客户控制器指数(显示所有客户的列表)

/客户/ 1客户控制器视图(示出了ID为客户的细节= 1)

/订单顺序控制器指数(显示所有订单的列表)

/命令/ 1顺序控制器视图(示出该命令的细节订单号 = 1)

我想要做的是添加一个页面,显示与特定客户关联的订单列表,网址为:/ customers/1/orders。我不确定是哪个控制器应该映射到哪个方法。

它应该放在客户控制器,订单控制器还是应该有一个新的客户订单控制器?

任何帮助,建议,意见大加赞赏,

感谢

吉姆

+0

实际上,您显示的是非规范化数据视图。理想状态是显示基于客户的数据,所以它是客户/细节/ 1,这是属于客户的具有订单细节的方法。 – Panagiotis 2012-03-19 19:30:47

回答

2

在我看来,你只是应用一个过滤器列表中关闭所有的订单。由于这个原因,使用Orders控制器会更有意义。

此外,您可能会重新考虑您的路由策略。恕我直言,这将是更好的有这样的事情:/:controller((/:action)/:id),默认值indexlist的行动。下面是这种模式视图的例子:

/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怎么做路由。对于所有的问题,路由都是最好的功能之一。

呃..只是我的两分钱。