ThinkPHP模型定義,thinkphp模型

來源:互聯網
上載者:User

ThinkPHP模型定義,thinkphp模型
模型類一般位於項目的Lib/Model 目錄下面,當我們建立一個UserModel類的時候,其實已經遵循了系統的約定。模型類的命名規則是除去表首碼的資料表名稱,採用駝峰法命名,並且首字母大寫,然後加上模型類的尾碼定義Model,例如:

模型名(類名) 約定對應資料表(假設資料庫的首碼定義是 think_)
UserModel think_user
UserTypeModel think_user_type
如果你的規則和上面的系統約定不符合,那麼需要設定Model類的資料表名稱屬性。
在ThinkPHP的模型裡面,有幾個關於資料表名稱的屬性定義:
屬性 說明
tableName 不包含表首碼的資料表名稱,一般情況下預設和模型名稱相同,只有當你的表名和當前的模型類的名稱不同的時候才需要定義。
trueTableName 包含首碼的資料表名稱,也就是資料庫中的實際表名,該名稱無需設定,只有當上面的規則都不適用的情況或者特殊情況下才需要設定。
dbName 定義模型當前對應的資料庫名稱,只有當你當前的模型類對應的資料庫名稱和設定檔不同的時候才需要定義。
下面舉個例子來加深理解,例如,在資料庫裡面有一個think_categories表,而我們定義的模型類名稱是CategoryModel,按照系統的約定,這個模型的名稱是Category,對應的資料表名稱應該是think_category(全部小寫),但是現在的資料表名稱是think_categories,因此我們就需要設定tableName屬性來改變預設的規則(假設我們已經在設定檔裡面定義了DB_PREFIX 為 think_)。
  1. protected $tableName = 'categories'; 
注意這個屬性的定義不需要加表的首碼think_
而對於另外一種特殊情況,資料庫中有一個表(top_depts)的首碼和其它表首碼不同,不是think_ 而是 top_,這個時候我們就需要定義 trueTableName 屬性了
  1. protected $trueTableName = 'top_depts'; 
注意trueTableName需要完整的表名定義
除了資料表的定義外,還可以對資料庫進行定義,例如:
  1. protected $dbName = 'top';
4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.