php フィールドの使用法は次のとおりです: 1. クエリ操作で "$Model->field('id,title,content')->select();" メソッドを使用します。 2. を使用します。 「$ Model->field(array(...))」メソッドは、いくつかのフィールドのエイリアスなどを定義します。
この記事の動作環境: Windows7 システム、thinkphp v5.1 バージョン、Dell G3 コンピューター
フィールドの使用法php
ThinkPHP のコヒーレント操作メソッドにおけるフィールド メソッドの使用テクニックは数多くありますが、フィールド メソッドの主な目的は、返されるフィールドまたは操作されるフィールドを識別することであり、これについては以下で詳しく説明します。
1. クエリに使用されます
フィールド メソッドは、クエリ操作で最も頻繁に使用されます。
$Model->field('id,title,content')->select();
フィールド メソッドは、クエリ結果セット内の ID、タイトル、コンテンツを含む 3 つのフィールドの値を指定するためにここで使用されています。実行される SQL は次と同等です:
SELECT id,title,content FROM table
もちろん、select メソッドに加えて、find などを含むすべてのクエリ メソッドで field メソッドを使用できますが、ここでは例として select のみを取り上げます。
上記の例は、配列に置き換えることもできます: [-more-]
$Model->field(array('id','title','content'))->select();
最終的に実行される SQL は上記と同等です。
#^_^配列の使用法は複雑すぎるように思えますが、まだ結論を出さないでください。配列を使用するメリットは後で理解できるでしょう。
配列モードの定義では、特定のフィールドのエイリアスを定義できます。例:
- $Model->field(array ('id','title'=>'name','content'))-> # ##選択する###();####################################### # #実行される SQL は次と同等です: SELECT id,title as name,content FROM table
##直接使用したい場合:
- $モデル->フィールド('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 つの要件がある場合、最初の要件はすべてのフィールドを取得することです。フィールド メソッドがそうでないため、これは非常に単純かもしれません。 called または empty は直接使用されます。フィールド メソッドで実行できます。実際、これは当てはまります:
- $モデル->select();
- ##$モデル ->field()->select();
##$モデル- ->フィールド('*')->選択(); 上記の 3 つの使用法は同等であり、SQL の実行と同等です。
SELECT
- # FROM tableただし、これは私が言ったことではありません。
すべてのフィールドを取得
、明示的に取得したい場合は、すべてのフィールドを呼び出します (比較的高いパフォーマンス要件を持つシステムの場合、この要件は過剰ではありません。少なくともこれはより良い習慣です)、それでも非常に単純です。次の使用法で期待される効果を達成できます:
$モデル->- フィールド(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();
- は、フォーム内の唯一の有効なフィールドがタイトル、電子メール、コンテンツ フィールドであることを意味します。ユーザーがブラウザの送信フィールドを変更または追加するためにどのような手段を使用したかは関係ありません。 、直接ブロックされます。ユーザーの送信によって決定されたくないフィールドは他にもすべてあるため、オートコンプリート機能を使用して追加のフィールドを定義して書き込むことができます。 まとめフィールドメソッドの使い方から、いわゆる小さなメソッドだけど大きな使い方が理解できるはずです もちろん、ThinkPHP がもっと便利になることを願うばかりですあなたの開発に驚きをもたらします。あなたの使用法や経験を共有してくださる方を歓迎します! 推奨学習: 「PHP ビデオ チュートリアル 」
以上がphpフィールドの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。