thinkphp如果表名有下划线需要用Model
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                thinkphp如果表名有下划线需要用Model
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                模型命名規范
ThinkPHP 對數據庫的表名和模型類的命名遵循一定的規范。首先數據庫的表名和字段全部采用小寫形式,模型類的命名規則是除去表前綴的數據表名稱,并且首字母大寫,然后加上模型類的后綴定義。一些例子如下:
| user | UserModel | UserModel.class.php | class UserModel extends Model{} | 
| user_group | UserGroupModel | UserGroupModel.class.php | class UserGroupModel extends Model{} | 
提示:系統以駝峰命名法來識別帶下劃線的表名。
當項目中的表命名規則和 ThinkPHP 中的約定不符時(常常會有這種情況),ThinkPHP 允許對 Model 類的 tableName 和 trueTableName 屬性進行設置以達到兼容的目的。
tableName 屬性
當表前綴和系統設置的前綴(DB_PREFIX)一致而表名和模型名稱不一致時,可設置此屬性,例如表名稱為 users ,而模型名稱為 UserModel ,那么需要在模型類設置:
class UserModel extends Model{protected $tableName = 'users'; }trueTableName 屬性
如果表的前綴跟系統設定的不一致(表名和模型名可能一致)時,需要設定模型的 trueTableName 屬性:
class UserModel extends Model{protected $trueTableName = 'my_user'; }注意 trueTableName 值為完整的表名(包括前綴)。
dbName 屬性
dbName 屬性定義模型當前對應的數據庫名稱,只有當前的模型類對應的數據庫名稱和配置文件不同的時候才需要定義:
protected $dbName = 'cdb'; 表:think_hello_world模型:HelloWorldModel.class.php
代碼
就這樣,就已經是操作think_hello_world表了啊 Hassan2014年08月20日 你就不能認真看手冊么?有人回答你了,你還扯著trueTableName 屬性不放... 回復Keith_hzw2014年08月20日 如果以前用3.1寫的數據庫表有下劃線,難道你更新到3.2就把數據庫的表的名字全改了嗎 yurke2014年08月19日 手冊上有明確說明的。使用首字母大寫,后面的用駝峰 回復Keith_hzw2014年08月19日 如果你的表有下劃線?還能用駝峰法?protected $trueTableName = "goods_class"; 這句會把本應該 前綴_goods_class 改為 前綴.goods_class 回復yurke2014年08月19日 回復 Keith_hzw : 你有注意到別人的發言嗎?首先首字母大寫,然后任何下劃線都去掉緊接著的字母大寫。D('GoodsClass');有注意到這個C大寫嗎??? 回復yurke2014年08月19日 回復 Keith_hzw : 還有你的文件名就有問題,同理文件名也要這樣寫的。你在文件名也加下劃線,你質疑別人可以,但是好歹也先看下手冊。 回復yurke2014年08月19日 回復 Keith_hzw : GoodsClassModel.class.php這才是對應你表名的文件名,基本規范建議遵守 Keith_hzw2014年08月19日 你說D('Goodsclass'),再在里面加protected $trueTableName = "goods_class"; 這句來確定表名吧,,但如果表名有下滑線,會出錯 aphpyzr2014年08月19日 D('GoodsClass'); 回復云端o楓o02014年08月20日 此乃正解,樓主建議你多看看手冊,還有命名規范里的說明!
轉載于:https://www.cnblogs.com/caicaizi/p/5603274.html
總結
以上是生活随笔為你收集整理的thinkphp如果表名有下划线需要用Model的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【drp 11】使用Junit简单测试接
- 下一篇: Xamarin 中Visual Stud
