次に、ThinkPHP の create() メソッドの自動検証の例を示します。内容がとても良かったので、参考としてシェアさせていただきます。
自動検証は、ThinkPHP モデル層によって提供されるデータ検証方法であり、create を使用してデータ オブジェクトを作成するときにデータ検証を自動的に実行できます。
原則:
##create() メソッドは、フォーム ($_POST) 情報を収集して返します。同時に、フォームの自動検証をトリガーし、不正なフィールドをフィルタリングします。
コントローラーで create() メソッドを使用すると (戻り値は true/false)、モデル クラスの $_validate 属性が自動的にトリガーされます (これは、親クラス Model、サブクラス Rewrite in Model) で、create() メソッドにデータがなく戻り値が false の場合、$_validate で検証ルールをカスタマイズします (検証ルールについては後で詳しく説明します)。エラーメッセージ!
自動検証の使用は、次のルール形式に従って定義する必要があります:
protected $_validate = array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );
検証フィールド (必須): フォームフィールド。
検証ルール (必須): 必須フィールドには、電子メール アドレス、URL URL アドレス、および番号を含める必要があります。追加のルールと組み合わせて使用することもできます。
エラー プロンプト (必須): 検証が失敗した場合に返されるプロンプト メッセージ。
検証条件 (オプション): 0、1、2 の 3 つのタイプがあります。0: _POST に存在するフィールド検証、デフォルト。1: 検証ルールが定義されている場合は検証が必要です。値は空ではありません。検証、定義済み 検証ルールは正規表現です (デフォルト)function 関数検証、定義済みの検証ルールは関数名です
メソッド検証、定義された検証ルールが現在のモデル クラスのメソッドである | |
2 つのメソッドが一致しているかどうかを検証します。フォーム内のフィールド 同じです。定義された検証ルールはフィールド名 | |
であり、特定の値と等しいかどうかを検証します。この値は、以前の検証ルール | |
以前の検証ルール (バージョン 3.1.2 の新機能) で定義された特定の値と等しくないかどうかを検証します。 | ##in |
notin | |
length | |
between | |
notbetween | |
expire | |
# を使用することもできます。 | ##ip_allow |
ip_deny | |
#unique | 一意であるかどうかを確認するために、システムはフィールドの現在の値に基づいてデータベースにクエリを実行し、フォーム データに同じ値が存在するかどうかを判断します。主キー フィールドが含まれています。unique を使用して主キー フィールド自体を決定することはできません |