2013-10-18 98 views
0

我遵循此示例http://framework.zend.com/manual/2.2/en/user-guide/database-and-models.html來創建模型並將其保存到數據庫。ZF2 - 數據庫和模型

但我不喜歡在我的控制器中使用AlubumTable -class的想法,因爲我認爲這會產生太多的依賴關係。我只想將save(),fetchAll()等方法添加到我的模型中,以便我不必關心如何將模型保存在控制器中。

如果我想改變模型存儲的方式,例如從數據庫到REST服務,我將不得不重寫我的控制器的每個部分,以獲取或存儲模型,而不僅僅是改變模型中的save()等方法。

有沒有我的方式教程,或者這只是一個愚蠢的想法? :)

回答

0

您所關心的確實可以,但您必須認識到AlbumTable不過是Controller和數據庫之間的一層。 AlbumTable實際上是與依賴關係的一件事,而不是控制器。

控制器將始終需要某種「服務」或「網關」(將是AlbumTable)才能訪問數據庫中的數據。

另外我不明白你的意思是「我想改變我的模型存儲的方式」 - 你應該總是將MODEL存儲到你的服務中。在給出的示例中,型號爲Album,服務爲AlbumTable。無論數據來自何處--REST,RPC,「普通HTTP」,您總是會存儲相冊,而不是某些ArrayData或什麼。您寧願嘗試在您的模型中實現一個函數,如exchangeArray()exchangeJson()

你可能想使你的「問題」更加清楚地告訴我們......

+0

好吧,模型需要存儲或以某種方式獲取。我喜歡這個模型完全負責完成這個任務的想法。在我的控制器內部,我只想調用'Album :: fetchAll()'並獲取所有'Album',我不想考慮是否調用數據庫或其他服務來執行此操作。我不想在使用數據庫時實例化「AlbumTable」,或者在使用REST服務時說'AlbumRest'。這是否澄清我的問題? –