2012-03-19 66 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怎麼做路由。對於所有的問題,路由都是最好的功能之一。

呃..只是我的兩分錢。