thinkphp框架之模型(數(shù)據(jù)庫查詢),thinkphp框架_PHP教程
Jul 12, 2016 am 08:55 AMthinkphp框架之模型(數(shù)據(jù)庫查詢),thinkphp框架
1. 模型定義
? ? ?文件名稱必須是 表名+Model.class.php 例如:UserModel.class.php
? ? ?
namespace Home\Model; <span>//</span><span>該模型類的命名空間</span> <span>use</span> Think\Model; <span>//</span><span>下面的模型類需要繼承Model基類,Model是系統(tǒng)定義的模型類,在 Think\Model 這個命名空間中</span> <span>class</span> UserModel <span>extends</span><span> Model { }</span>
文件中的類名是跟文件名中的“表名”是一致的(這一項是必須的如果不一致在控制器中就會找不到這個模型類)。
類名與表名的對應(yīng)關(guān)系是(注意:模型名中對應(yīng)每個大寫對應(yīng)的數(shù)據(jù)表的前面都有一個下劃線,如下第二行)
模型名 | 約定對應(yīng)數(shù)據(jù)表(如果數(shù)據(jù)庫的前綴是think_) |
UserModel | think_user |
UserTypeModel | think_user_type |
2. 模型實例化
2.1 直接實例化
2.1.1 不帶參數(shù)實例化 $user=new \Home\Model\UserModel();
2.1.2 帶參數(shù)實例化 $user=new \Home\Model\UserModel(['模型名'],['數(shù)據(jù)表前綴'],['數(shù)據(jù)庫連接信息']);
上述兩種方法的區(qū)別在于,第一種在實例化的時候回去讀取默認配置(例如在模型中的配置或者是模塊中的數(shù)據(jù)庫配置),而第二種方法是直接讀取傳入?yún)?shù)的數(shù)據(jù)庫配置
模型名是對應(yīng)的數(shù)據(jù)庫中的去掉前綴的表名,如果不指定這會讀取模型類的名稱但是是去掉Model后的名稱 例如:
UsereModel.class.php 文件中的 UsereModel 類 ,如果在實例化的時候傳入模型名"User"會按傳入查找數(shù)據(jù)表 前綴+“user”,如果不傳則會提取 UsereModel類的 “Usere” 去查找數(shù)據(jù)表。這樣可以解決模型名與數(shù)據(jù)表明不一致的問題。
2.2 D方法實例化
D方法的參數(shù)是模型的名稱,并且和模型類的大寫定義是一致的。
<?<span>php </span><span>//</span><span>實例化模型</span> <span>$user</span>=D("User"<span>); </span><span>//</span><span>相當于 $user=new \Home\Model\UserModel(); </span>
? ? ?跨模塊實例化
? ? ?D('Admin/User') 其中 “Admin” 是模塊名稱,“User”是模型名稱 ?
? ? 實例化 Extend擴展名空間下的Info模型
? ? ? D('Extend://Editor/Info')
? ? 2.3 M方法實例化
? ? ? ? M('User') 與D方法實例化的區(qū)別是這個方法不需要該模型存在,并且如果模型存在則其中的方法也會別忽略,該方法主要是用來對數(shù)據(jù)庫的操作。
? ? ? ? ? 當D方法沒有找到模型時會默認的調(diào)用 M方法。
? ? 2.4 ?實例化空模型
? ? ? ? ?$Model=new Model() 或者 $Model=M();
? ? ? ? ? 這種空實例可以用老進行原生的sql查詢(注:其他的模型也可以進行原生的sql查詢,并且查詢的表不必跟模型對應(yīng))
3. 模型中的字段
? ?$fields=array('','') 表示數(shù)據(jù)表中的字段
? ?$pk 表示數(shù)據(jù)表的主鍵
? ?$connection=array('db_type' => 'mysql','db_user' => 'root','db_pwd' => '1234','db_host' => 'localhost','db_port' => '3306','db_name' => 'thinkphp','db_charset' => 'utf8','db_params' => array(), // 非必須); ?表示數(shù)據(jù)庫連接
? ?數(shù)據(jù)庫類型://用戶名:密碼@數(shù)據(jù)庫地址:數(shù)據(jù)庫端口/數(shù)據(jù)庫名#字符集
? ? $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8';
?

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

ThinkPHP ????? ????? ??? ?????: Composer? ????, ???? ????? ???? php bin/console? ????, ?? ???? ??? http://localhost:8000? ?????.

ThinkPHP?? ??? PHP ????? ??? ?? ??? ????. ??? ???? 3.2, 5.0, 5.1, 6.0? ????, ??? ??? ??? ???? ??? ??? ???? ? ?????. ?? ?? ??? ThinkPHP 6.0.16???. ??? ??? ? PHP ??, ?? ?? ?? ? ???? ??? ??????. ??? ??? ??? ???? ?? ?? ??? ???? ?? ????.

ThinkPHP Framework? ???? ???? ??: ThinkPHP Framework? ?? ????? ?????? ??? ???. ThinkPHP ?? ????? ???? ?? ???(?? ??)? ????. ?????? ?? ????? ?????. ? ??? ?????. ThinkPHP ??????? ??????. ThinkPHP ?????? URL? ???? ?????.

Laravel? ThinkPHP ?????? ?? ??: ThinkPHP? ????? ??? ? ??? ??? ?? Laravel?? ??? ????. Laravel? ? ????? ??? ??????? ?? ThinkPHP? ? ??? ? ????.

ThinkPHP ?? ??: PHP, Composer ? MySQL ??? ?????. Composer? ???? ????? ????. ThinkPHP ?????? ???? ?????. ?????? ??? ?????. ?????? ??? ?????. ??????? ???? http://localhost:8000? ?????.

ThinkPHP? ?? ????, ?? ???, ?? ?? ? ?????? ???? ?? ??? ?? ??? PHP ????????. ?? ?? ???? ??? ?? 10,000? ??? ??? ??? ? ??? JD.com, Ctrip? ?? ??? ? ??? ? ?????? ????? ?? ?? ?????? ?? ?????.

?? ??: API ??? ?? ThinkPHP ?????? ???? ?? ???? ????? ????? API(?? ????? ?????)? ???? ?? ? ??? ????. API? ??? ??, ?? ?? ? ?? ??? ??? ? ??? ????? ??? ???? ?? ?? ??? ?????. ??? PHP ?? ?????? ThinkPHP ?????? ????? ?? ???? ???? ????.

"?? ??: ThinkPHP ?????? ???? ??? ??? ???? ??" ??? ??? ??? ???? ?? ? ?? ????? ?? ?? ?? ??? ??? ???? ??? ???? ?? ?? ??? ?? ? ??????. ??? ??? ??? ??? ????? ?? ???? ??? ???, ?? ??? ??, ??? ?? ?? ?? ??? ?? ??? ??? ???? ?? ??? ??? ???? ?? ?? ?????. PHP ???? ?? ???? ?? ?????? ThinkPHP ?????? ??? ??? ???? ? ?? ??? ??? ?????.
