2012-12-14 40 views
0

我有一張物品表,每個物品可以分配給定數量的圖像,其中一些是特色圖像。其中一個必須是一次啓用。要在控制器或模型中執行的操作?

我在圖像表中的這些字段:功能 (0或1)啓用 (0或1)

繼MVC架構,我不知道我是否應該做的控制器以下或在模型中,例如我啓用圖像(我已經簡化了示例,因爲它更復雜一點):

  1. 檢查此圖像是否有特色。
  2. 如果有特色,禁用任何特色圖像並啓用此功能。

我可以從模型到控制器獲取其狀態(有或沒有),並讓控制器命令模型禁用所有特色圖像,然後告訴模型啓用此模型,或讓模型在內部管理這一切。

我的問題出現了,因爲據我所知,有時我會讀,控制器被認爲是引擎,而模型只是做控制器的命令。

但是我認爲在這種情況下,模型可能是自力更生的,將這些約束作爲黑盒子來管理,而不需要控制器知道它們。

您認爲如何?

+0

有人請嗎?建議將不勝感激。 –

回答

1

我建議你在你的物品表中增加一個字段。並存儲啓用圖像的ID(可以是特色或啓用圖像)。

此方法能夠解決您的問題,都

1.Check if this image is featured. 
2.In case it is featured, disable any featured image and enable this one. 

每次,只是存儲啓用哪一個或哪的特點是該圖像的ID。所以,你不必在圖像表中進行更新。

+1

感謝您的建議。你的方法比我的要好得多。我讓我的生活變得複雜。無論如何,我想清楚中心問題。 –

+0

我很高興它幫助你。 –

+0

以及主要問題呢?它超越了這個例子。想象一下,我的方式是唯一的方法。我應該從模型中檢索數據到控制器,然後這個人會說模型執行必要的操作?或者我應該讓模型在內部處理這一切並且對控制器透明? –

相關問題