日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

thinkphp如果表名有下划线需要用Model

發布時間:2024/6/21 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp如果表名有下划线需要用Model 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模型命名規范

ThinkPHP 對數據庫的表名和模型類的命名遵循一定的規范。首先數據庫的表名和字段全部采用小寫形式,模型類的命名規則是除去表前綴的數據表名稱,并且首字母大寫,然后加上模型類的后綴定義。一些例子如下:

表名(不含前綴)模型名稱(類名)文件名例子
userUserModelUserModel.class.phpclass UserModel extends Model{}
user_groupUserGroupModelUserGroupModel.class.phpclass 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
代碼

  • #?HelloWorldModel.class.php
  • namespace?...
  • use?...
  • classs?HelloWorldModel?extend?Model?{
  • ????public?function?getYourHeader()?{
  • ????
  • ????}
  • }
  • #?使用
  • D('HelloWorld')->getYourHeader();
  • #?模型名稱不能使用下劃線,如果是使用D加載模型

  • 復制代碼
    就這樣,就已經是操作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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。