$model = m("configsettings」);
find()只返回一行記錄,select()方法可以返回多行,可以結合where()方法按條件查詢。如果在某個模型類裡面定義了$model->find(); //返回configsettings表的第一行記錄
//也可以用
$model->where("")->find();
$model->where('status=1 and name="thinkphp"')->find();
$model->where("name='thinkphp'")->select(); //
返回name=thinkphp的所有記錄
connection
屬性的話,則例項化該自定義模型的時候會採用定義的資料庫連線資訊,而不是配置檔案中設定的預設連線資訊,通常用於某些資料表位於當前資料庫連線之外的其它資料庫:
<?phpnamespace home\model;
class userinfomodel extends
\think\model
?>
模型類並非必須定義,只有當存在獨立的業務邏輯或者屬性的時候才需要定義。模型類通常需要繼承系統的\think\model類或其子類。
模型類的命名規則是除去表字首的資料表名稱,採用駝峰法命名,並且首字母大寫,然後加上模型層的名稱(預設定義是model),例如:
模型名
約定對應資料表(假設資料庫的字首定義是 think_)
usermodel
think_user
usertypemodel
think_user_type
如果你的規則和上面的系統約定不符合,那麼需要設定model類的資料表名稱屬性tabname,以確保能夠找到對應的資料表。
直接例項化
可以和例項化其他類庫一樣例項化模型類,例如:
$user = new\home\model\usermodel();
$info = new
\admin\model\infomodel();
//帶引數例項化
$new = new \home\model\newmodel('blog','think_',$connection);
d方法例項化
上面例項化的時候我們需要傳入完整的類名,系統提供了乙個快捷方法d用於資料模型的例項化操作。
要例項化自定義模型類,可以使用下面的方式:
<?php//例項化模型
$user = d('user');
//相當於 $user = new \home\model\usermodel();
// 執行具體的資料操作
$user->select();
?>
d方法的引數就是模型的名稱,並且和模型類的大小寫定義是一致的。
m方法例項化模型
d方法例項化模型類的時候通常是例項化某個具體的模型類,如果你僅僅是對資料表進行基本的curd操作的話,使用m方法例項化的話,由於不需要載入具體的模型類,所以效能會更高。
//使用m方法例項化
$user = m('user');//
和用法 $user = new \think\model('user'); 等效
// 執行其他的資料操作
$user->select();
m方法也可以支援跨庫操作,例如:
//使用m方法例項化 操作db_name資料庫的ot_user表
$user = m('db_name.user','ot_');
//執行其他的資料操作
$user->select();
例項化空模型類
如果你僅僅是使用原生sql查詢的話,不需要使用額外的模型類,例項化乙個空模型類即可進行操作了,例如:
//例項化空模型
$model = new
model();
//或者使用m快捷方法是等效的
$model =m();
//進行原生的sql查詢
$model->query('select * from think_user where status = 1');
例項化空模型類後還可以用table方法切換到具體的資料表進行操作
我們在例項化的過程中,經常使用d方法和m方法,這兩個方法的區別在於m方法例項化模型無需使用者為每個資料表定義模型類,如果d方法沒有找到定義的模型類,則會自動呼叫m方法。
thinkphp學習筆記 1
框架用起來不難,關鍵在於理解原理,深入其中。不太喜歡用框架,更喜歡原生態,如wordpress般,亂且爽,但wordpress太深。框架用在多人開發,快捷開發,高效。參考thinkphp快速入門 1.在www目錄下建立測試目錄tp demo,並貼上thinkphp到該目錄下 2.建立入口檔案如ind...
thinkphp學習 入口檔案 1
在達內培訓的時候是學過thinkphp的,並在老師的帶領下,也是應用這個框架做過專案的,但畢竟自己沒有用心,後來參加工作,是做的ecshop的二次開發,大部分的工作是對公司的後台 進行維護,本人太安逸了,不想動腦去學習未知的,覺得太費腦,結果這次面試給人的印象就是白白的有兩年的工作經驗,但實際上懂得...
ThinkPHP學習心得(1
1.模組下面用空方法 empty 處理非法的action請求 2.控制器action資料夾中的 action 控制器對應tpl下的 視 件夾,action 中的 yyy 方法對應 資料夾下的 yyy.html 檔案 3.學習了模板中標籤 5.空模組處理控制器 emptyaction.class.ph...