thinkphpのフィールドメソッドの使い方まとめ、知らないこともあるかも
Jun 21, 2016 am 08:50 AM
ThinkPHP のコヒーレント操作メソッドには、フィールド メソッドの使用テクニックが多数あります。フィールド メソッドの主な目的は、返されるフィールドまたは操作されるフィールドを識別することです。これについては、以下で詳しく説明します。
1.
のクエリに使用されますフィールド メソッドは、クエリ操作で最も頻繁に使用されます。
- $Model->field('id,title,content')->select();
ここでは、フィールド メソッドを使用して、クエリ結果セット内の ID、タイトル、コンテンツの 3 つのフィールドの値を指定します。実行される SQL は次と同等です:
- テーブルから ID、タイトル、コンテンツを選択
もちろん、select メソッドに加えて、find などを含むすべてのクエリ メソッドで field メソッドを使用できます。ここでは例として select のみを取り上げます。
上記の例は、配列
- $Model->field(array('id','title','content'))->select();
最終的に実行されるSQLは上記と同等になります。
^_^ 配列の使用法は複雑すぎるように思えますが、まだ結論を出さないでください。配列を使用するメリットは後で理解できるでしょう。
配列モードでの定義では、特定のフィールドのエイリアスを定義できます。例:
- $Model->field(array('id','title'=>'name','content'))->select();
実行される SQL は次と同等です:
- SELECT ID、名前としてのタイトル、テーブルからの内容
直接使用したい場合:
- $Model->field('id,title as name,content')->select();
間違った結果が得られる可能性があります。
いくつかのより複雑なフィールド要件の場合、次のような配列の利点がより明白になります:
- $Model->field(array('id','concat(name,'-',id)'=>'truename','LEFT(title,7)'=>'sub_title'))-> ;select();
実行される SQL は次と同等です:
- SELECT id,concat(name,'-',id) as truename,LEFT(title,7) as sub_title FROM table
SQL 関数をフィールドで使用する必要がある状況では、配列メソッドが優れたソリューションであることは誰もが理解していると思います。
フィールドメソッドにはこの効果しかありませんか?そう思うなら、あなたは ThinkPHP のフィールド メソッドを過小評価しています。ThinkPHP はあなたが思っているよりもはるかに慎重に細部を考慮しています。
まず次の状況を見てみましょう。テーブルに多数のフィールドと 2 つの要件がある場合、最初の要件はすべてのフィールドを取得することです。これは、フィールド メソッドを呼び出すことなく、または直接実行できるため、非常に簡単です。空のフィールドメソッドを使用すると、実際には次のようになります。
- $Model->select();
- $Model->field()->select();
- $Model->field('*')->select();
上記の 3 つの使用法は同等であり、SQL の実行と同等です:
- SELECT * FROM テーブル
ただし、これはすべてのフィールドを取得するという意味ではありません (高パフォーマンス要件を持つシステムの場合、この要件は過剰ではありません。少なくとも、これはより良い習慣です)。それでも、非常に単純です。 . 、次の使用法により期待される効果が得られます:
- $Model->field(true)->select();
fied(true) を使用すると、データ テーブルに 100 個のフィールドがある場合でも、データ テーブル内のすべてのフィールドのリストが明示的に取得されます。
2 番目の要件は、コンテンツ フィールドを除くすべてのフィールド値を取得することです (テキスト フィールドの値は非常にメモリを消費します)。たとえば、次のメソッドを使用できます。上記の機能を実現します:
- $Model->field('content',true)->select();
さらに多くのフィールドを除外することもできます:
- $Model->field('user_id,content',true)->select();
- // または を使用します
- $Model->field(array('user_id','content'),true)->select();
2.
を書くために使用されますクエリ操作に加えて、フィールド メソッドには、フィールドの正当性検出という非常に重要なセキュリティ機能もあります (注: この機能はバージョン 3.1 以降でのみサポートされます)。 create メソッドと組み合わせたフィールド メソッドをフォーム送信の処理メソッドで使用すると、フォーム送信のフィールドの正当性の検出を完了できます。
-
$Model->field('title,email,content')->create();
概要
フィールド メソッドの使用法から、小さなメソッドではあるが大きな使用法が何かを理解できるはずです。もちろん、ThinkPHP があなたの開発にさらなる利便性と驚きをもたらすことを願っています。皆さんもぜひ使用方法を共有してください。経験!

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は?
