M メソッドは、基本的なモデル クラスをインスタンス化するために使用されます。D メソッドとの違いは次のとおりです。
1. モデル クラスをカスタマイズする必要はありません。 IO 負荷が軽減され、パフォーマンスが向上します。
2. インスタンス化後には、基本モデル クラスのメソッドのみを呼び出すことができます。
3. インスタンス化時にテーブルのプレフィックス、データベース、およびデータベース接続情報を指定できます。 ;
D メソッドの威力が反映される カプセル化するカスタム モデル クラスがどれほど強力であるかによって異なりますが、ThinkPHP フレームワークの新しいバージョンの基本モデル クラスがますます強力になるにつれて、M メソッドもますます強力になっています。 D メソッドよりも実用的です。
Mメソッドの呼び出し形式:
M('[基本モデル名:]モデル名','データテーブルプレフィックス','データベース接続情報')
Mメソッドの具体的な使い方を見てみましょう:
1 、基本モデル (Model) クラスをインスタンス化します
モデルが定義されていない場合、次のメソッドを使用して、操作用のモデル クラスをインスタンス化できます。 リーリー
このメソッドは、モデルクラスを定義する必要がなく、プロジェクト間の呼び出しをサポートしているため、最も単純かつ効率的です。また、カスタム モデル クラスがないため、関連するビジネス ロジックを作成できず、基本的な CURD 操作のみを完了できるという欠点もあります。リーリー
は実際には次と同等です:リーリー
は think_user テーブルを操作することを意味します。 M メソッドも D メソッドと同様にシングルトン関数を持ち、複数回呼び出されても繰り返しインスタンス化されません。 M メソッドのモデル名パラメーターは、データ テーブルに変換されるときに自動的に小文字に変換されます。これは、ThinkPHP のデータ テーブルの命名仕様がすべて小文字形式であることを意味します。
2. 他のパブリックモデルクラスをインスタンス化します
リーリー
変更された使用法は実際には次と同等です:リーリー
システムのモデルクラスは自動的にロードできるため、インスタンス化前にクラスライブラリを手動でインポートする必要はありません。モデル クラス CommonModel は Model を継承する必要があります。 CommonModel クラスでいくつかの共通の論理メソッドを定義できるため、プロジェクトに既に 100 を超えるデータ テーブルがある場合、そのほとんどは基本的なメソッドです。CURD 操作では、一部のモデルのみがこのメソッドを備えています。カプセル化する必要がある複雑なビジネス ロジックがあるため、最初の方法と 2 番目の方法を組み合わせるのが良い選択です。
3. 受信テーブルプレフィックス、データベース、その他の情報
リーリー
は、Model モデル クラスをインスタンス化し、db2 データベース内の think_user テーブルを操作することを意味します。 2 番目のパラメータが空白のままであるか渡されない場合は、現在のプロジェクト設定でデータ テーブル プレフィックスを使用することを意味します。操作されているデータ テーブルにテーブル プレフィックスがない場合は、次を使用できます。
リーリー
は、Model モデル クラスをインスタンス化し、db1 データベース内のユーザー テーブルを操作することを意味します。
リーリー
基本モデル クラスが Model を使用し、think_user テーブルを操作し、user_a アカウントを使用してデータベースに接続し、操作データベースが thinkphp であることを示します。
たとえば、プロジェクト構成ファイルで構成されます:
リーリー
その後、以下を使用できます:
基本的なモデルクラスとデータベースは一緒に使用できます。例:
リーリーパブリックモデルクラスを使用して階層モデルをインスタンス化したい場合は、以下を使用できます:
リーリーを使用して UserLogic をインスタンス化します。ただし、
を使用できるため、あまり意味はありません リーリー同じ機能を実現します。
http://www.bkjia.com/PHPjc/1053809.html