ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp が自動的に検証できない場合はどうすればよいですか?

thinkphp が自動的に検証できない場合はどうすればよいですか?

PHPz
PHPzオリジナル
2023-04-10 09:05:04513ブラウズ

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 サイトの他の関連記事を参照してください。

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