ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP の d() と m() の違いは何ですか

ThinkPHP の d() と m() の違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-03-26 11:58:202994ブラウズ

違い: M メソッドは基本モデル クラスを効率的にインスタンス化するために使用され、D メソッドはユーザー定義モデル クラスをインスタンス化するために使用されます。 M メソッドはモデル クラス ファイルを作成する必要がなく、M メソッドはモデル クラスを読み取りませんが、D メソッドはモデル クラスを作成する必要があります。

ThinkPHP の d() と m() の違いは何ですか

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

M メソッドと D メソッドの違い

  • ThinkPHP では、M メソッドと D メソッドの両方を使用してモデル クラスをインスタンス化します。 M メソッドは基本モデル クラスを効率的にインスタンス化するために使用され、D メソッドはユーザー定義モデル クラスをインスタンス化するために使用されます。

  • M メソッドはモデル クラス ファイルを作成する必要はありません。M メソッドはモデル クラスを読み取らないため、自動検証はデフォルトでは無効ですが、動的検証によって実現できます。割り当て; D メソッドはモデル クラスを作成する必要があります。

#M メソッドを使用する

# 次の状況が発生した場合は、M メソッドの使用を検討してください:

  • 複雑なビジネス ロジックを使用せずにデータ テーブルに対して単純な CURD 操作を実行する場合

  • 比較的複雑なビジネス ロジックを持つテーブルが少数しかない場合は、インスタンス化された CommonModel クラスと組み合わせて M メソッドを使用します。

M メソッドは、パラメータ テーブルに対応するデータを単純に参照することもできます。 name.テーブル操作:

$User = M('User');

D メソッドを使用します

次の状況が発生した場合は、方法 D の使用を検討してください。

  • 自動検証機能 (create() メソッドで実装) など、ThinkPHP モデルのいくつかの高度な機能を使用する必要があります。関連モデルなど。

  • ビジネス ロジックは比較的複雑で、多くのテーブルが含まれます

  • ビジネス ロジックはカスタム モデル クラス ( Lib/Model ディレクトリの下にあります)、これらのビジネス ロジックを操作で実装したいと考えています

さらに、D メソッドはプロジェクト間の呼び出しをサポートしていないため、使用する必要があります:

$User = D('User', 'Admin');    // 实例化 Admin 项目下面的 User 模型 
$User = D('Admin.User');        // 启用了项目分组

Tips

プロジェクトのグループ化が有効になった後、Model クラスは必ずしもプロジェクトのグループ化に対応するとは限りません。複数のプロジェクト グループ間で共有されるモデル クラスは Model ディレクトリに配置され、D('ModelName') を使用して直接インスタンス化できます。また、D('User.UserInfo') は、User がプロジェクト グループである必要があるという意味ではなく、Model の下にあるファイルの分類ディレクトリでも構いません。D('User.UserInfo') は、User ディレクトリに UserInfo モデルをインスタンス化します。親切。

要約

モデル クラス ファイルが存在しない場合は、M メソッドと D メソッドの両方を直接使用できますが、明らかに M メソッドの方が効率的ですが、モデル クラスでビジネス ロジックを使用するには、D メソッドを使用する必要があります。

より鮮明な例え: 方法 M は、オペレーティング システムをインストールしたばかりで、いくつかの基本的な機能しか使用できないコンピューターのようなものであり、方法 D は、インストールされたシステムに Office や QQ などのアプリケーション ソフトウェアをインストールするようなもので、機能はより強力です。 、同時にコンピューター全体の動作が遅くなります。

関連する推奨事項:

最新の 10 件の thinkphp ビデオ チュートリアル

以上がThinkPHP の d() と m() の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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