ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP フレームワークのショートカット キー M と D の違い

ThinkPHP フレームワークのショートカット キー M と D の違い

巴扎黑
巴扎黑オリジナル
2016-11-24 14:33:471411ブラウズ

D() メソッドと M() メソッドの違い:

D と M の主な違いは、

M メソッドはモデル クラス ファイルを作成する必要がないため、M メソッドはモデル クラスを読み取らないことです。自動検証はデフォルトでは無効ですが、動的代入

によって実現でき、D メソッドはモデル クラスを作成する必要があります。

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

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

2 つ目のメソッド: $Test = new Model('Test')

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

データの検証に大きな違いがあります。最初の方法でモデルを導入すると、タイトルにデータ チェック機能が追加されます。入力時に「タイトルを入力してください」と表示されます (これは tp が提供する自動検証機能です。もちろん、検証条件は対応するモデルで定義する必要があります)。2 番目のタイプを使用する場合は、このデータ検証機能はありません。手動検証が必要です。

概要は次のとおりです:

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

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

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

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

もっと簡単に言うと、
M インスタンス化パラメータはデータベースのテーブル名です。
D は、Model フォルダーの下に作成したモデル ファイルによってインスタンス化されます。

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

すべてのアクション ファイルはモデル ファイルに対応する必要があります。
例: $Form = D("User") を $Form = new UserModel(); に変更できます (User はモデル ファイル名を指します)。 )。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。