この 2 つはモデルをインスタンス化するという共通点がありますが、違いは何でしょうか?見てみましょう:
$User = D('User'); 括弧内のパラメータ User は、対応するモデル クラス ファイルの \Home\Model\UserModel.class.php に対応します (現在のmodule が Home )、パラメーターが 'UserType' の場合、対応するモデル クラス ファイルは \Home\Model\UserTypeModel.class.php になります。これは、D メソッドのパラメーターがモデルの名前であり、一貫していることを意味します。モデルクラスのケース定義を使用します。
$User = M('User'); は $User = new \Think\Model('User'); と同等です。つまり、M メソッドがインスタンス化されるとき、デフォルトでは \Think です。システムを直接インスタンス化する \Model クラス。他のパブリック モデル クラスをインスタンス化したい場合は、次のメソッドを使用できます: $User = M('\Home\CommenModel:User','think_','db_config' );(テーブルの接頭辞は think_) であると仮定します。
インスタンス化のプロセスでは、D メソッドと M メソッドがよく使用されます。2 つのメソッドの違いは、M メソッドは、ユーザーが各データ テーブルのモデル クラスを定義せずにモデルをインスタンス化することです。 D メソッドが見つからない場合、定義されたモデル クラスは自動的に M メソッドを呼び出します。
また、ThinkPHP の自動検証機能や自動補完機能を使用したい場合は、D メソッドを使用する必要があります。
実際、率直に言うと、M メソッドをインスタンス化するときのパラメーターはデータベースのテーブル名ですが、D メソッドは Model フォルダーに作成した Model クラスをインスタンス化します。 D メソッドを使用して、自動的に検証して自動的に完了します。
その他の ThinkPHP 関連の技術記事については、ThinkPHP 使用法チュートリアル 列にアクセスして学習してください。
以上がThinkphpのDメソッドとMメソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。