thinkphp D メソッドが返す内容

青灯夜游
リリース: 2022-03-15 18:51:27
オリジナル
1653 人が閲覧しました

thinkphp では、D メソッドはインスタンス化されたモデル オブジェクトを返すことができます。 D メソッドは、カスタム モデル クラスをインスタンス化するために使用されます。これは、ThinkPHP フレームワークによるモデル クラスのインスタンス化のカプセル化です。構文は、「D('[project://][group/]model','モデル層名」です。 ')"、戻り値はインスタンス化されたモデル オブジェクトです。

thinkphp D メソッドが返す内容

このチュートリアルの動作環境: Windows 7 システム、thinkphp v5.1 バージョン、Dell G3 コンピューター。

D メソッドは、最も一般的に使用されるメソッドです。これは、カスタム モデル クラスをインスタンス化するために使用されます。これは、ThinkPHP フレームワークによるモデル クラスのインスタンス化のカプセル化です。また、シングルトン モードを実装し、クロスプロジェクトをサポートします。

D('[项目://][分组/]模型','模型层名称')
ログイン後にコピー

D メソッドの戻り値は、インスタンス化されたモデル オブジェクトです。

D メソッドはモデル クラスを自動的に検出できます。カスタム モデル クラスが存在する場合はカスタム モデル クラスがインスタンス化され、存在しない場合はモデルの基本クラスがインスタンス化されます。渡されたモデルは繰り返しインスタンス化されません。

D メソッドの最も一般的な使用法は、現在のプロジェクトのカスタム モデルをインスタンス化することです。例:

// 实例化User模型
$User = D('User');
ログイン後にコピー

は、次の Lib/Model/UserModel.class.php ファイルをインポートします。現在のプロジェクトにアクセスし、UserModel クラスをインスタンス化します。そのため、実際のコードは次と同等になります。

import('@.Model.UserModel');
$User = new UserModel();
ログイン後にコピー

D メソッドは、グループやプロジェクト全体でのモデルのインスタンス化をサポートできます。例:

//实例化Admin项目的User模型
D('Admin://User')
//实例化Admin分组的User模型
D('Admin/User')
ログイン後にコピー

バージョン 3.1 では、階層モデルのサポートが追加されたため、D メソッドは他のモデルをインスタンス化することもできます。たとえば、

// 实例化UserService类
$User = D('User','Service');
// 实例化UserLogic类
$User = D('User','Logic');
ログイン後にコピー
D('User','Service');
ログイン後にコピー

は Lib/Service/UserService.class.php をインポートしてインスタンス化します。

拡張知識: D と M の主な違いは、

M メソッドはモデル クラス ファイルを作成する必要がありません。M メソッドは、モデル クラスであるため、デフォルトでは自動検証は無効ですが、動的割り当てを通じて実現できます

D メソッドはモデル クラスを作成する必要があります。

次の 2 つのメソッドを使用して、データ テーブルのマッピング オブジェクトを作成できます。

最初のメソッド:$Test = D('Test')

2 番目のタイプ: $Test = new Model('Test')

どちらもデータに対して選択、挿入、削除、更新操作を実行できますが、

データ検証には大きな違いがあります。

最初の方法でモデルをインスタンス化するとデータチェック機能が付きます。タイトルが未入力の場合は「タイトルを入力してください」と表示されます。 (これは自動検証機能を提供します。もちろん、検証条件は対応するモデルで定義する必要があります);

2 番目のタイプを使用する場合、このデータ検証機能はありません。手動で確認します。

概要は次のとおりです:

  • D 関数は、現在のプロジェクトの Lib/Model の下にモジュールをインスタンス化します。

  • モジュールが存在しない場合は、インスタンス化したModelのオブジェクトを直接返します(意味はM()関数と同じです)。

  • そして、M はモデルをインスタンス化するオブジェクトのみを返します。その $name パラメータは、データベースに対する操作を処理するためのデータベースのテーブル名として使用されます。

平たく言えば:

  • D は、モデル ファイルに基づいてモデルをインスタンス化することです。

  • M は、対応する Model ファイルが存在しない場合でも、Model メソッド (ThinkPHP 基本クラス) を直接インスタンス化することにより、Model オブジェクトを動的にインスタンス化します。

もっと簡単に言うと、

  • M インスタンス化パラメータはデータベースのテーブル名です。

  • D は、Model フォルダーの下に作成したモデル ファイルをインスタンス化します。

  • D は、モデルを定義しない場合、システムが自動的にモデルを定義して、簡単なデータの入力または出力を実行できることを意味します。

  • 各アクション ファイルはモデル ファイルに対応する必要があります。モデルを定義する場合は、

例: $Form = D ("User")$Form = new UserModel(); (User はモデル ファイル名を指します) に変更できます。

[関連チュートリアルの推奨事項: thinkphp フレームワーク]

以上がthinkphp D メソッドが返す内容の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!