>  기사  >  PHP 프레임워크  >  ThinkPHP6의 데이터 유효성 검사 이해

ThinkPHP6의 데이터 유효성 검사 이해

WBOY
WBOY원래의
2023-06-20 22:45:081747검색

ThinkPHP6은 현재 가장 인기 있는 PHP 개발 프레임워크 중 하나이며 많은 PHP 개발자가 개발에 이를 사용하는 것을 좋아합니다. 우수한 애플리케이션은 사용자가 입력한 데이터에 대한 적법성 검증이 반드시 이루어져야 하기 때문에 개발 과정에서 데이터 검증은 매우 중요한 부분입니다. 이번 글에서는 ThinkPHP6에서 데이터 검증을 구현하는 방법을 자세히 소개하겠습니다.

  1. 기본 아이디어

ThinkPHP6 데이터 유효성 검사는 유효성 검사기 개념을 기반으로 합니다. 즉, 데이터 유효성을 검사하려면 유효성 검사기 개체를 만들어야 합니다. 유효성 검사기 개체를 생성할 때 유효성 검사 규칙을 지정한 다음 확인을 위해 유효성 검사 메서드를 호출해야 합니다. 검증에 실패하면 검증 오류 정보가 반환되고, 그렇지 않으면 true가 반환됩니다. 다음은 간단한 예입니다.

use thinkValidate;

$data = [
    'name'  => 'thinkphp',
    'email' => 'thinkphp@qq.com',
    'age'   => 18
];

$validate = new Validate([
    'name'  => 'require|max:25',
    'email' => 'email',
    'age'   => 'number|between:1,120',
]);

if (!$validate->check($data)) {
    dump($validate->getError());
}

위 코드에서는 먼저 확인해야 하는 데이터가 포함된 $data 배열을 정의합니다. 그런 다음 유효성 검사기 개체 $validate를 만들고 이에 대한 세 가지 유효성 검사 규칙을 설정했습니다. 즉, 이름 필드는 비워둘 수 없으며 최대 25자까지 가능합니다. 이메일 필드는 유효한 이메일 주소여야 하며, 연령 필드는 숫자여야 합니다. 1에서 120 사이입니다. 마지막으로 데이터를 검증하기 위해 check 메소드가 호출됩니다. 확인에 실패하면 오류 메시지가 출력됩니다.

  1. 확인 규칙에 대한 자세한 설명

위의 예에서는 require, max, email, number, between 등과 같은 몇 가지 일반적인 확인 규칙을 사용했습니다. 아래에서는 일반적으로 사용되는 유효성 검사 규칙과 사용법을 소개합니다.

  1. require

이 규칙은 필드가 비어 있을 수 없음을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'username' => 'require'
  1. max,min

이 규칙은 필드의 최대 또는 최소 길이를 제한하는 데 사용됩니다. 사용법은 다음과 같습니다.

'username' => 'max:25'
'password' => 'min:8'
  1. email

이 규칙은 필드가 유효한 이메일 주소여야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'email' => 'email'
  1. alpha,alphaNum

이 규칙은 필드가 문자 또는 영숫자 조합만 가능함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'username' => 'alpha'
'password' => 'alphaNum'
  1. regex

이 규칙은 필드가 지정된 정규 표현식과 일치해야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'username' => 'regex:^[a-z]+$'
  1. unique

이 규칙은 필드 값이 데이터베이스에서 고유해야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'email' => 'unique:user,email'

위 예에서 고유 뒤의 매개변수는 사용자 테이블에서 이메일 필드 값이 고유해야 함을 지정합니다.

  1. in

이 규칙은 필드 값이 지정된 범위 내에 있어야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'gender' => 'in:0,1'
  1. between

이 규칙은 필드 값이 지정된 범위 내에 있어야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'age' => 'between:1,120'
  1. confirm

이 규칙은 두 필드가 동일해야 함을 지정하는 데 사용됩니다. 사용법은 다음과 같습니다.

'password_confirm' => 'confirm:password'

위의 예에서는 비밀번호_확인 및 비밀번호 두 필드가 동일해야 합니다.

  1. 사용자 정의 유효성 검사 규칙

특정 요구 사항을 충족하기 위해 일부 사용자 정의 유효성 검사 규칙을 사용해야 하는 경우가 있습니다. 이 경우 addRule 메서드를 사용하여 유효성 검사 규칙을 사용자 정의할 수 있습니다. 예를 들어 텍스트 상자의 내용에 지정된 키워드가 포함되어야 하는지 확인하려면 다음과 같은 규칙을 정의할 수 있습니다.

use thinkValidate;

Validate::rule('my_rule', function($value, $rule) {
    return strpos($value, $rule) !== false;
});

$validate = new Validate([
    'content' => 'my_rule:thinkphp'
]);

if (!$validate->check($data)) {
    dump($validate->getError());
}

위 코드에서는 먼저 정적 메서드 규칙을 통해 사용자 정의 규칙 my_rule을 등록합니다. 사용법은 다른 규칙과 동일합니다. 그런 다음 유효성 검사기에서 이 규칙을 사용하여 콘텐츠 필드의 값에 thinkphp 키워드가 포함되어야 하는지 확인했습니다.

  1. 시나리오 확인

때로는 서로 다른 시나리오에서 동일한 필드에 대해 서로 다른 확인 규칙을 사용해야 합니다. 예를 들어 사용자 등록 및 사용자 수정의 두 가지 시나리오에서 이메일 필드에 대해 서로 다른 확인 규칙을 사용해야 합니다. 현재 우리는 요구 사항을 충족하기 위해 시나리오 검증을 사용할 수 있습니다. 유효성 검사기 개체를 생성할 때 시나리오 이름을 지정한 다음 각 시나리오에 대해 서로 다른 유효성 검사 규칙을 설정할 수 있습니다. 예:

use thinkValidate;

$data = [
    'email' => 'thinkphp@qq.com',
    'password' => '123456',
];

$validate = new Validate([
    'email' => 'require|email|unique:user,email',
    'password' => 'require|min:6'
]);

// 假设当前为用户修改资料场景
$validate->scene('edit', function($validate) {
    $validate->rule('email', 'require|email');
});

if (!$validate->scene('edit')->check($data)) {
    dump($validate->getError());
}

위의 예에서는 먼저 유효성 검사기 개체 $validate를 정의하고 이메일 및 비밀번호 필드에 대한 유효성 검사 규칙을 설정합니다. 그런 다음 장면 메소드를 사용하여 현재 장면을 편집으로 지정하고 이메일 필드에 대한 유효성 검사 규칙을 지정합니다. 마지막으로 확인을 위해 check 메소드를 호출합니다. 확인에 실패하면 오류 메시지가 출력됩니다.

  1. 다국어 지원

ThinkPHP6은 다국어 유효성 검사 오류 메시지를 지원합니다. 이를 위해서는 verify.php 파일에 해당 오류 메시지를 추가하면 됩니다. 예를 들어 이메일 필드에 중국어 오류 정보를 추가하려면 다음과 같이 구성하면 됩니다.

return [
    'email' => [
        'require' => '邮箱必须填写!',
        'unique'  => '该邮箱已被注册!',
        'email'   => '邮箱格式不正确!'
    ]
];

이 구성 파일은 /config/validate.php에 저장되며 getError를 통해 해당 오류 정보를 얻을 수 있습니다. 확인 중 방법.

  1. End

위는 유효성 검사 규칙, 사용자 정의 유효성 검사 규칙, 시나리오 유효성 검사 및 다국어 지원을 포함하여 ThinkPHP6의 데이터 유효성 검사의 기본 사용법입니다. 이러한 기능을 사용하면 사용자 입력 데이터를 보다 쉽게 ​​확인하고 애플리케이션의 보안과 합법성을 보장할 수 있습니다. 이 글이 모든 개발자에게 도움이 되기를 바랍니다!

위 내용은 ThinkPHP6의 데이터 유효성 검사 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.