ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp フレームワーク モデル (データベース クエリ)、thinkphp フレームワーク_PHP チュートリアル

thinkphp フレームワーク モデル (データベース クエリ)、thinkphp フレームワーク_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:55:03
オリジナル
865 人が閲覧しました

thinkphp フレームワーク モデル (データベース クエリ)、thinkphp フレームワーク

1. モデル定義

ファイル名はテーブル名+Model.class.php である必要があります。例: UserModel.class.php

リーリー

ファイル内のクラス名がファイル名の「テーブル名」と一致していること (この項目は必須です。矛盾している場合、モデルクラスがコントローラー内で見つかりません)。

クラス名とテーブル名の対応関係は次のとおりです (注: 以下の 2 行目に示すように、モデル名の各大文字に対応するデータ テーブルの前にアンダースコアがあります)

モデル名 対応するデータテーブルに同意します (データベースのプレフィックスが think_ の場合)
ユーザーモデル think_user
ユーザータイプモデル 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';

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117387.htmlTechArticlethinkphp框架之模型(数据库查询),thinkphp框架 1. 模型定义 文件名称必须是 表名+Model.class.php 例如:UserModel.class.php namespace Home\Model; // 该模...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート