ホームページ php教程 php手册 thinkphpのフィールドメソッドの使い方まとめ、知らないこともあるかも

thinkphpのフィールドメソッドの使い方まとめ、知らないこともあるかも

Jun 21, 2016 am 08:50 AM
content nbsp select

ThinkPHP のコヒーレント操作メソッドには、フィールド メソッドの使用テクニックが多数あります。フィールド メソッドの主な目的は、返されるフィールドまたは操作されるフィールドを識別することです。これについては、以下で詳しく説明します。

1.

のクエリに使用されます

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

  1. $Model->field('id,title,content')->select();

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

  1. テーブルから ID、タイトル、コンテンツを選択

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

に置き換えることもできます。
  1. $Model->field(array('id','title','content'))->select();

最終的に実行されるSQLは上記と同等になります。
^_^ 配列の使用法は複雑すぎるように思えますが、まだ結論を出さないでください。配列を使用するメリットは後で理解できるでしょう。
配列モードでの定義では、特定のフィールドのエイリアスを定義できます。例:

  1. $Model->field(array('id','title'=>'name','content'))->select();

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

  1. SELECT ID、名前としてのタイトル、テーブルからの内容

直接使用したい場合:

  1. $Model->field('id,title as name,content')->select();

間違った結果が得られる可能性があります。
いくつかのより複雑なフィールド要件の場合、次のような配列の利点がより明白になります:

  1. $Model->field(array('id','concat(name,'-',id)'=>'truename','LEFT(title,7)'=>'sub_title'))-&gt ;select();

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

  1. SELECT id,concat(name,'-',id) as truename,LEFT(title,7) as sub_title FROM table

SQL 関数をフィールドで使用する必要がある状況では、配列メソッドが優れたソリューションであることは誰もが理解していると思います。
フィールドメソッドにはこの効果しかありませんか?そう思うなら、あなたは ThinkPHP のフィールド メソッドを過小評価しています。ThinkPHP はあなたが思っているよりもはるかに慎重に細部を考慮しています。
まず次の状況を見てみましょう。テーブルに多数のフィールドと 2 つの要件がある場合、最初の要件はすべてのフィールドを取得することです。これは、フィールド メソッドを呼び出すことなく、または直接実行できるため、非常に簡単です。空のフィールドメソッドを使用すると、実際には次のようになります。

  1. $Model->select();
  2. $Model->field()->select();
  3. $Model->field('*')->select();

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

  1. SELECT * FROM テーブル

ただし、これはすべてのフィールドを取得するという意味ではありません (高パフォーマンス要件を持つシステムの場合、この要件は過剰ではありません。少なくとも、これはより良い習慣です)。それでも、非常に単純です。 . 、次の使用法により期待される効果が得られます:

  1. $Model->field(true)->select();

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

  1. $Model->field('content',true)->select();

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

  1. $Model->field('user_id,content',true)->select();
  2. // または
  3. を使用します
  4. $Model->field(array('user_id','content'),true)->select();

2.

を書くために使用されます

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

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

概要

フィールド メソッドの使用法から、小さなメソッドではあるが大きな使用法が何かを理解できるはずです。もちろん、ThinkPHP があなたの開発にさらなる利便性と驚きをもたらすことを願っています。皆さんもぜひ使用方法を共有してください。経験!



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

解決策: 組織では PIN を変更する必要があります。 解決策: 組織では PIN を変更する必要があります。 Oct 04, 2023 pm 05:45 PM

解決策: 組織では PIN を変更する必要があります。

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

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

Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Windows 11でタイトルバーの色を変更するにはどうすればよいですか? Sep 14, 2023 pm 03:33 PM

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

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法 Sep 15, 2023 pm 03:57 PM

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

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

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

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? Nov 29, 2023 pm 11:21 PM

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

See all articles