ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でフォーム検証を実行するにはどうすればよいですか?

ThinkPHP6 でフォーム検証を実行するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-12 09:36:261575ブラウズ

ThinkPHP6 は、Web アプリケーションの開発を大幅に簡素化する PHP ベースの MVC フレームワークです。その中でもフォームバリデーションは非常に基本的かつ重要な機能です。この記事では、ThinkPHP6 でフォーム検証操作を実行する方法を紹介します。

1. 検証ルールの定義
ThinkPHP6 では、コントローラで検証ルールを定義する必要があります。以下に示すように、コントローラで $validate 属性を定義することでルールを定義できます:

use thinkValidate;
class UserController extends Controller {
    protected $validate;
    public function __construct(Validate $validate) {
        $this->validate = $validate;
    }

    // 定义验证规则
    protected $rule = [
        'name' => 'require|max:25',
        'email' => 'email',
        'age' => 'number|between:1,120',
    ];
}

2. フォームの検証
検証ルールを定義した後、コントローラーで $validate の check() メソッドを使用して、定義した検証ルールを実行できます。検証操作は、コントローラーの $request オブジェクトで validate() メソッドを呼び出し、検証ルールを渡すことで実装できます。

public function add(Request $request) {
    $data = $request->param();
    $result = $this->validate($data, $this->rule);
    if ($result !== true) {
        return ['code' => 1, 'msg' => $result];
    }
    // 验证通过,执行添加操作
}

上記のコードでは、$request->param() メソッドは、フォーム内のすべてのパラメーター値を含む配列を返します。これを検証のために validate() メソッドに渡します。検証に失敗した場合はエラー メッセージが返され、検証に合格した場合は追加操作が直接実行されます。

3. カスタム エラー メッセージ
実際の開発では、一部のルールにカスタム エラー メッセージを設定する必要がある場合がありますが、これは検証ルールで message() メソッドを使用することで実現できます。

protected $rule = [
    'name' => 'require|max:25',
    'email' => 'email',
    'age' => 'number|between:1,120',
];

protected $message = [
    'name.require' => '用户名必填',
    'name.max' => '用户名最多不能超过25个字符',
    'email.email' => '邮箱格式错误',
    'age.number' => '年龄必须是数字',
    'age.between' => '年龄必须在1~120之间',
];

コントローラーで $validate の message() メソッドを使用すると、ルールのエラー メッセージをカスタマイズできます。例:

$result = $this->validate($data, $this->rule, $this->message);

4. バッチ検証
複数のフォームを検証する必要がある場合、$validate のバッチ() メソッドを使用してバッチ検証を行うことができます。例:

public function verify(Request $request) {
    $data = $request->param();
    $rule = [
        'name' => 'require|max:25',
        'email' => 'email',
        'age' => 'number|between:1,120',
    ];
    $message = [
        'name.require' => '用户名必填',
        'name.max' => '用户名最多不能超过25个字符',
        'email.email' => '邮箱格式错误',
        'age.number' => '年龄必须是数字',
        'age.between' => '年龄必须在1~120之间',
    ];
    $result = $this->validate($data, $rule, $message, true);
    if ($result !== true) {
        return ['code' => 1, 'msg' => $result];
    }
    // 验证通过,执行相关操作
}

上記のコードでは、$validate メソッドの 4 番目のパラメーターは true であり、バッチ検証が有効であることを意味します。バッチ検証を有効にした後、検証が失敗した場合にすべてのエラー メッセージを返すように複数のフォーム検証ルールを設定できます。

要約:
ThinkPHP6 では、コントローラーで $validate 属性を定義することによって検証ルールが定義され、$request オブジェクトの validate() メソッドを呼び出すことによってフォーム検証が実行され、message() はカスタム エラー メッセージを設定するメソッドを使用します。同時に、batch() メソッドを通じてバッチ検証を実行できます。これらの操作は非常に基本的でよく使われる操作なので、実際の開発ではしっかりとマスターする必要があります。

以上がThinkPHP6 でフォーム検証を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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