我對Jamie Rumbelow的MY_Model和模型有一個疑問。 MY_Model提供了一個保存了表格名稱的受保護變量。我想使用它,但我希望我的模型能夠處理3個表格。所以我想我的問題是一個模型可以處理多個表嗎?這樣做的好習慣,還是每個數據庫表有一個模型更好?Codeigniter Model
0
A
回答
9
默認情況下,MY_Model不支持多個表格,但是,您可以非常容易地創建方法 - 我喜歡稱它們爲範圍 - 以高效優雅的方式鏈接到其他表格。
比方說,我們有一個post_model.php需要在數據拉從類別表。我假設我們要根據post.category_id引入我們的category.name。
class Post_model extends MY_Model
{
public function with_category()
{
$this->db->join('categories', 'categories.id = post.category_id', 'left');
$this->db->select('categories.name AS category_name');
return $this;
}
}
然後,我們可以用我們的with_category()
方法(鏈以及所有我們的內置MY_Model方法)來拉我們的分類信息:
$this->post_model->with_category()
->get_all();
或者與get_by()
:
$this->post_model->with_category()
->get_by('status', 'open');
範圍界定是將其他表格引入模型的一種很酷的方式,同時仍然可以使用所有的co ol stuff MY_Model規定。
1
如果您希望不使用Jamie Rumbelow的MY_Model,則必須爲每個模型只使用一個表格,因爲它從模型名稱中獲取表格名稱。正如他介紹的那樣,這是一個基本的CRUD模型,您可以將其擴展以適應您的情況。 我認爲最好的做法是每個模型使用一個表(不包括連接表,如果有的話)。雖然我有時會在CodeIgniter中跳過這個,如果有些東西可以邏輯地添加到同一個模型中,並且不需要太大以至於不需要他們自己的模型。例如有一個評論模型,你只需要評論的投票。我這樣做是因爲懶惰 - 我討厭在CI中手動加載模型。
相關問題
- 1. Model Missing,Codeigniter
- 2. Codeigniter HTTP Error 500 from model?
- 3. CodeIgniter $ this-> load-> model()不起作用
- 4. Codeigniter - Model,檢查值是否在行
- 5. 如何在model codeigniter中編寫TIMESTEMPDIFF QUERY?
- 6. Codeigniter - 使用getters/setters將值從控制器傳遞到model
- 7. 在codeIgniter視圖中使用Model的方法的正確方法?
- 8. 使用jamierumbelow/codeigniter-base-model時的自定義查詢
- 9. 如何加載codeigniter-base-model中的所有行? REST api
- 10. 什麼是codeigniter的load-> model第三個參數?
- 11. 無法在PHP codeigniter Model類中訪問全局變量。
- 12. 無法訪問CodeIgniter中從Controller發送到Model的參數
- 13. 將POST中的值從VIEW傳遞到CONTROLLER到Codeigniter中的MODEL
- 14. 我可以在routes.php中使用Model或Helper函數[codeigniter]
- 15. codeigniter - 將所有表單值傳遞給model
- 16. CodeIgniter系統中的MODEL規則在哪裏?
- 17. Model
- 18. Model
- 19. Spring MVC Model model life-cicle
- 20. model from model返回NULL
- 21. 如何將Model類實例化爲另一個在codeigniter中具有參數的Model類
- 22. Symfony FORMS:{'model'=> $ this-> getRelatedModelName('model')}和{'model'=>'model'}在setWidgets中的差異
- 23. before_create model
- 24. 從Model
- 25. 從Model
- 26. $ this-> model = $ model;意味着在MVC
- 27. @Model和@model之間的差異
- 28. MVP(Model View Presenter)或MVC(Model View Controller)
- 29. ng-model在ng-model變化後執行
- 30. boost :: geometry :: model :: linear :: boost :: geometry :: intersector :: geometry :: model :: polygon
我很高興我使用這種方式作者正在使用它:) – zbrox
這真的需要進入文檔,請! – stef