2014-03-07 118 views
0

一個快速的問題這時候相對於M MVC中。(使用笨,但問題是一般)使用單個靈活的模型

假設我有幾個模型,它們負責在我的數據庫訪問多個表,是它對建立一個可以處理所有事情的靈活模型感到不滿?

特別是在PHP-笨,例如:

$this->MY_model->getByID($table,$ID) 

所以可以使用此代碼示例任何表的ID來獲得。因此我想你救了我的時間,我可以重用大多數的我型號代碼。

當然這可以進一步擴展

$this->MY_model->update($table,$info) as an example. 

所以我的問題是,如果所有的上面是好的,哪裏是「限價」,以這樣的操作?當然,我們不希望在這種類型的模型真正具體的事情,這樣的方法:

$this->MY_model->getAllActiveUsers() 

我的基本做法是這樣的:

,可以在多個表中使用任何方法應在擴展模型中使用。 任何方法只能在一個表中使用,應該在它自己的模型中。

只是要清楚我不是在尋找意見,而是想知道這些問題的標準方法是什麼(例如,想象一個包含50個模型的應用程序,應該爲所有50個模型編寫CRUD嗎?)

在此先感謝!

+0

這是一個提示:**模型不是類**。它絕對不是一個表格CRUD。 –

+0

你介意拓展一下嗎? 一個模型確實是一個類,至少在codeigniter :) 什麼模型的作用是表上的CRUD,或者我失去了什麼? – Patrick

+0

我在許多答案中都有*擴展*。這裏是一個:http://stackoverflow.com/a/5864000/727208 –

回答

1

您正在研究的是大多數Codeigniter開發人員的標準操作。如果您要在數據庫中執行大量的CRUD,那麼將一組通用CRUD方法添加到您的基礎MY_model然後對其進行擴展是有意義的。如果您在Google上進行搜索......您可能會得到100多位設置了自己基本模型的人的結果,其中包括大多數Codeigniter項目所使用的CRUD和其他常用方法......這裏只是一對:

https://github.com/jamierumbelow/codeigniter-base-model

https://github.com/jenssegers/CodeIgniter-My-Model

CRUD應該爲他們的所有50個寫?

不可以。您可以擴展您的基本模型並使用它的通用CRUD方法,只要它們有意義並僅覆蓋某些屬性(表名)即可。然後,如果您需要更具體的內容,您可以按照您的建議在新模型中創建更多細化的方法。

+0

感謝您的答案。 所以,我從你那裏得到的基本上是使用常識來模型方法應該是通用的。 當然,如果我決定用通用的crud方法制作我自己的模型,我只會擴展它。 再次感謝您的回答:) – Patrick