thinkphp 學習筆記

來源:互聯網
上載者:User

標籤:style   blog   color   io   os   使用   ar   strong   檔案   

1.用M()方法建立模型類

$model = M("configsettings”);

2.使用find()方法或select()方法返回結果集

find()只返回一行記錄,select()方法可以返回多行,可以結合where()方法按條件查詢。

$model->find();   //返回configsettings表的第一行記錄//也可以用$model->where("")->find();$model->where(‘status=1 AND name="thinkphp"‘)->find();$model->where("name=‘thinkphp‘")->select();  //返回name=thinkphp的所有記錄

 

3.自訂模型類

如果在某個模型類裡面定義了connection屬性的話,則執行個體化該自訂模型的時候會採用定義的資料庫連接資訊,而不是設定檔中設定的預設串連資訊,通常用於某些資料表位於當前資料庫連接之外的其它資料庫:

<?php namespace Home\Model;class UserInfoModel extends \Think\Model{    //定義資料庫連接    protected $connection = array(                ‘db_type‘  => ‘mysql‘,               ‘db_user‘  => ‘root‘,               ‘db_pwd‘   => ‘goodtime‘,        ‘db_host‘  => ‘localhost‘,         ‘db_port‘  => ‘3306‘,        ‘db_name‘  => ‘test‘,        ‘db_prefix‘=> ‘‘,        ‘db_charset‘ => ‘utf8‘    );        protected $tableName = "userinfo"; //定義資料表名    }?>

模型類並非必須定義,只有當存在獨立的商務邏輯或者屬性的時候才需要定義。模型類通常需要繼承系統的\Think\Model類或其子類。

模型類的命名規則是除去表首碼的資料表名稱,採用駝峰法命名,並且首字母大寫,然後加上模型層的名稱(預設定義是Model),例如:

模型名 約定對應資料表(假設資料庫的首碼定義是 think_)
UserModel think_user
UserTypeModel think_user_type

如果你的規則和上面的系統約定不符合,那麼需要設定Model類的資料表名稱屬性tabName,以確保能夠找到對應的資料表。

 

4.模型執行個體化

直接執行個體化

可以和執行個體化其他類庫一樣執行個體化模型類,例如:

$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 學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.