thinkphp 學習1 模型

2022-02-22 19:33:40 字數 2522 閱讀 4218

$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屬性的話,則例項化該自定義模型的時候會採用定義的資料庫連線資訊,而不是配置檔案中設定的預設連線資訊,通常用於某些資料表位於當前資料庫連線之外的其它資料庫:

<?php 

namespace 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...