ThinkPHPのフィールドメソッドの詳しい説明 CURDメソッド_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:24:50
オリジナル
898 人が閲覧しました

ThinkPHP CURD メソッドのフィールド メソッドは、モデルの一貫した操作メソッドの 1 つであり、その主な目的は、返されるフィールドまたは操作されるフィールドを識別することであり、クエリ操作と書き込み操作に使用できます。

1. 問い合わせ用

フィールド メソッドはクエリ操作で最も頻繁に使用されます。

リーリー

ここでは、フィールド メソッドを使用して、クエリ結果セット内の 3 つのフィールド ID、タイトル、コンテンツの値を指定します。実行される SQL は次と同等です:

リーリー

もちろん、select メソッドに加えて、find などを含むすべてのクエリ メソッドで field メソッドを使用できます。ここでは例として select のみを使用します。
上記の例は、配列に置き換えることもできます:

リーリー

最終的に実行されるSQLは上記と同等です。

配列の使用法は複雑すぎるように思えますが、まだ結論を出さないでください。配列を使用する利点は後ほど理解します。
配列モードでの定義では、次のような特定のフィールドのエイリアスを定義できます。

リーリー
実行される SQL は次と同等です:

リーリー
直接使用したい場合:

リーリー
間違った結果が得られる可能性があります。

より複雑なフィールド要件の場合、次のような配列の利点がより明白になります。

リーリー
実行される SQL は次と同等です:

リーリー
フィールドで SQL 関数を使用する必要がある場合、配列メソッドが良い解決策になる可能性があることは誰もが理解していると思います。

フィールドメソッドにはこの効果しかありませんか?そう考えると、ThinkPHP のフィールド メソッドを過小評価していることになります。ThinkPHP は、あなたが思っているよりもはるかに詳細を考慮しています。

まず次の状況を見てみましょう。テーブルに多数のフィールドと 2 つの要件がある場合、最初の要件はすべてのフィールドを取得することです。これはフィールド メソッドやメソッドを呼び出さずに実行できるため、非常に簡単です。空のフィールドメソッドを直接使用して、実際に実行します:

リーリー
上記の 3 つの使用法は同等であり、SQL の実行と同等です。

リーリー
しかし、これはすべてのフィールドを取得するということではありません。すべてのフィールドを明示的に呼び出したいのですが (高パフォーマンス要件を持つシステムの場合、この要件は過剰ではありません。少なくともこれは良い習慣です)、それでもOK、それは非常に重要です。簡単です。次の使用法で期待どおりの効果が得られます。

リーリー

fied(true) を使用すると、データ テーブルに 100 個のフィールドがある場合でも、データ テーブル 内のすべてのフィールドのリストが明示的に取得されます。 2 番目の要件は、コンテンツ フィールドを除くすべてのフィールド値を取得することです (テキスト フィールドの値は非常にメモリを消費します)。たとえば、次のような
フィールド メソッドの除外関数を使用できます。メソッドは上記の機能を実現できます:

リーリー
さらに多くのフィールドを除外することもできます:

リーリー


2. 書き込みに使用します

クエリ操作に加えて、

field メソッドには、フィールドの正当性検出という非常に重要なセキュリティ機能もあります (注: この機能はバージョン 3.1 以降でのみサポートされます)。 フィールド メソッドは、フォーム送信のフィールドの正当性検出を完了するために create メソッドと組み合わせて使用​​されます。フォーム送信の処理メソッドで使用する場合:

リーリー
これは、ユーザーがブラウザの送信フィールドを変更または追加するためにどのような手段を使用しても、フォーム内の唯一の正当なフィールドは、直接ブロックされることを意味します。他のすべてのフィールドがユーザーの送信によって決定されることを望まないため、オートコンプリート機能を通じて書き込む追加フィールドを定義できます。


http://www.bkjia.com/PHPjc/825318.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/825318.html技術記事 ThinkPHP CURD メソッドのフィールド メソッドは、モデルの一貫した操作メソッドの 1 つであり、その主な目的は、返されるフィールドまたは操作されるフィールドを識別することであり、クエリおよび書き込み操作に使用できます。 1. クエリに使用...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート