thinkphp フレームワークを使用した開発プロセス中に、データ検証が必要な状況に頻繁に遭遇します。 thinkphp には便利な検証メソッドが多数用意されていますが、どのように呼び出してもデータが自動的に検証されない場合があります。どうしてこれなの?
まず、thinkphp で自動検証がどのように実行されるかを理解する必要があります。モデルで検証ルールを定義すると、次のようになります:
protected $validate = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ];
この定義は、モデルの検証属性を定義します。この属性は、検証する必要があるルールを含む配列です。使用中に、$model->validate($data)
メソッドを呼び出してデータを検証できます。 $data
パラメータは検証する必要があるデータです。検証に合格した場合、メソッドは true を返します。そうでない場合は、エラー メッセージの配列を返します。
ただし、場合によっては、validate()
メソッドを呼び出すときに自動検証が実行されません。これは、thinkphp がデフォルトでは必須のデータ検証を実行しないためです。データを検証したい場合は、以下に示すように検証メソッドを手動で呼び出す必要があります。
// 强制进行自动验证 $model->isUpdate(true)->validate($data);
ここでは、isUpdate
メソッドを true に設定し、これが更新であることを示します。このようにして、自動検証を強制できます。
手動呼び出しに加えて、以下に示すように、モデルの $updateValidate
属性をオーバーライドして強制検証を設定することもできます。更新操作では、データ検証が自動的に実行されます。
要約すると、thinkphp はデフォルトではデータの必須検証を実行しません。手動で呼び出すか、モデルで必須検証属性を設定する必要があります。自動検証を使用する場合は、検証ルールが異なる可能性があるため、新規操作と更新操作を区別することに注意する必要があります。
以上がthinkphp が自動的に検証できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。