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

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

WBOY
リリース: 2023-06-12 09:36:26
オリジナル
1624 人が閲覧しました

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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() メソッドを呼び出し、検証ルールを渡すことで実装できます。

1

2

3

4

5

6

7

8

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() メソッドを使用することで実現できます。

1

2

3

4

5

6

7

8

9

10

11

12

13

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() メソッドを使用すると、ルールのエラー メッセージをカスタマイズできます。例:

1

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

ログイン後にコピー

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート