Controller 主要是扮演橋樑的角色,負責跟 Model 要資料並把資料傳給 View。另外一方面也會接收 View 傳來的各種 HTTP request傳給 Model。
基本上屬於「過程中應該被處理」的動作都應該放在 Controller,比方說有一個 View 需要前20筆的 products資料,我們不可能把所有的 products 都丟給 View ,然後再在 View 裡面判斷前20筆,這樣會很悲劇。所以在這種情況下,這個 View 對應的 Controller 就要負責「跟Model拿資料」以及「只拿20筆資料」的動作。
這個感覺有點像是球團、球員和經紀人三者的關係:
所以只要抱著「Model 處理資料庫,View處理前端呈現」這樣的原則,就知道什麼東西應該放在controller了。