搜尋
首頁php教程php手册thinkphp框架之模型(数据库查询),thinkphp框架

thinkphp框架之模型(数据库查询),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是系统定义的模型类,在 Think\Model 这个命名空间中</span>
<span>class</span> UserModel <span>extends</span><span> Model
{    
}</span>

 

      文件中的类名是跟文件名中的“表名”是一致的(这一项是必须的如果不一致在控制器中就会找不到这个模型类)。

      类名与表名的对应关系是(注意:模型名中对应每个大写对应的数据表的前面都有一个下划线,如下第二行)

模型名 约定对应数据表(如果数据库的前缀是think_)
UserModel think_user
UserTypeModel think_user_type

        

2. 模型实例化

    2.1 直接实例化 

         2.1.1  不带参数实例化    $user=new \Home\Model\UserModel();

         2.1.2     带参数实例化    $user=new  \Home\Model\UserModel(['模型名'],['数据表前缀'],['数据库连接信息']);

        上述两种方法的区别在于,第一种在实例化的时候回去读取默认配置(例如在模型中的配置或者是模块中的数据库配置),而第二种方法是直接读取传入参数的数据库配置

        模型名是对应的数据库中的去掉前缀的表名,如果不指定这会读取模型类的名称但是是去掉Model后的名称 例如:

         UsereModel.class.php 文件中的 UsereModel 类 ,如果在实例化的时候传入模型名"User"会按传入查找数据表 前缀+“user”,如果不传则会提取 UsereModel类的 “Usere” 去查找数据表。这样可以解决模型名与数据表明不一致的问题。

     2.2  D方法实例化

     D方法的参数是模型的名称,并且和模型类的大写定义是一致的。

<?<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方法实例化的区别是这个方法不需要该模型存在,并且如果模型存在则其中的方法也会别忽略,该方法主要是用来对数据库的操作。

          当D方法没有找到模型时会默认的调用 M方法。

    2.4  实例化空模型

         $Model=new Model() 或者 $Model=M();

          这种空实例可以用老进行原生的sql查询(注:其他的模型也可以进行原生的sql查询,并且查询的表不必跟模型对应

3. 模型中的字段

   $fields=array('','') 表示数据表中的字段

   $pk 表示数据表的主键

   $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(), // 非必须);  表示数据库连接

   数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集

    $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8';

 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器