ThinkPHPの機能を詳しく解説:M法とR法
この記事では、ThinkPHP の関数の詳細な説明について主に M メソッドと R メソッドを紹介します。必要な友達に参考にしてください。 ThinkPHP 関数の詳細な説明: M メソッド
M メソッドは、基本的なモデル クラスをインスタンス化するために使用されます。 D メソッドとの違いは次のとおりです:
1. モデル クラスをカスタマイズする必要がなく、IO 負荷が軽減されます。パフォーマンス;2. 基本モデル クラスのメソッドの後にのみ呼び出すことができます (デフォルトは Model クラスです)。
D メソッドの能力は、カプセル化するカスタム モデルに反映されますクラスがどれほど強力であっても、ThinkPHP フレームワークの新しいバージョンの基本モデル クラスがますます強力になるにつれて、M メソッドもますます強力になっていますD メソッドよりも実用的です。
Mメソッドの呼び出し形式:
M('[基本モデル名:]モデル名','データテーブルプレフィックス','データベース接続情報')
具体的な使い方を見てみましょう。 M メソッド:
1. 基本モデル (Model) クラスをインスタンス化します
モデルが定義されていない場合、次のメソッドを使用して操作用のモデル クラスをインスタンス化できます://实例化User模型 $User = M('User'); //执行其他的数据操作 $User->select();
$User = M('User');
$User = new Model('User');
2. 他のパブリック モデル クラスをインスタンス化する
インスタンス化する最初の方法は、モデル クラスの定義がないため、いくつかの追加の論理メソッドをカプセル化することが困難ですが、ほとんどの場合、必要なのは次のとおりです。一般的なロジックを拡張した場合は、次の方法を試してください。$User = M('CommonModel:User');
$User = new CommonModel('User');
3. テーブルのプレフィックス、データベース、その他の情報を渡します
M メソッドには 3 つのパラメーターがあり、最初のパラメーターはモデル名 (基本的なモデル クラスとデータベースを含むことができます) であり、2 番目のパラメーターは、データ テーブルのプレフィックス (現在のプロジェクト構成のテーブル プレフィックスを取得するには空白のままにします)。3 番目のパラメータは、現在使用されているデータベース接続情報を設定するために使用されます (現在のプロジェクト構成のデータベース接続情報を取得するには空白のままにします)。例:$User = M('db2.User','think_');
$User = M('db1.User',null);
$User = M('User','think_','mysql://user_a:1234@localhost:3306/thinkphp');
'DB_CONFIG'=>'mysql://user_a:1234@localhost:3306/thinkphp';
$User = M('User','think_','DB_CONFIG');
$User = M('CommonModel:db2.User','think_');
M('UserLogic:User');
でも同じことが達成できるためです。
D('User','Logic');
ThinkPHPの機能詳細説明:Rメソッド
Rメソッドは、Aメソッドをさらに拡張・補足するもので、特定のコントローラーの操作メソッドを呼び出すために使用されます。方法Aの使用方法はこちらをご覧ください。 Rメソッド呼び出し形式:R('[Project://][Group/]Module/Operation','Parameters','Controller Layer name')
例えば、オペレーションメソッドを次のように定義します:
りー
那么就可以通过R方法在其他控制器里面调用这个操作方法(一般R方法用于跨模块调用)
$data = R('User/detail',array('5'));
表示调用User控制器的detail方法(detail方法必须是public类型),返回值就是查询id为5的一个用户数据。如果你要调用的操作方法是没有任何参数的话,第二个参数则可以留空,直接使用:
$data = R('User/detail');
也可以支持跨分组和项目调用,例如:
R('Admin/User/detail',array('5'));
表示调用Admin分组下面的User控制器的detail方法。
R('Admin://User/detail',array('5'));
表示调用Admin项目下面的User控制器的detail方法。
官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助3.1的新特性多层控制器,单独添加一个控制器层用于接口调用,例如,我们增加一个Api控制器层,
class UserApi extends Action { public function detail($id){ return M('User')->find($id); } }
然后,使用R方法调用
$data = R('User/detail',array('5'),'Api');
也就是说,R方法的第三个参数支持指定调用的控制器层。
同时,R方法调用操作方法的时候可以支持操作后缀设置C('ACTION_SUFFIX'),如果你设置了操作方法后缀,仍然不需要更改R方法的调用方式。
以上内容给大家分享了ThinkPHP函数详解之M方法和R方法,希望对大家有所帮助。
相关推荐:
以上がThinkPHPの機能を詳しく解説:M法とR法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
