thinkphp가 자동으로 확인할 수 없으면 어떻게 해야 하나요?

PHPz
풀어 주다: 2023-04-10 09:22:29
원래의
556명이 탐색했습니다.

thinkphp 프레임워크를 사용하여 개발하는 과정에서 데이터 검증이 필요한 상황에 자주 직면하게 됩니다. thinkphp는 편리한 검증 방법을 많이 제공하지만 때로는 어떻게 호출하든 데이터를 자동으로 검증할 수 없는 경우가 있습니다. 왜 이런거야?

먼저 thinkphp에서 자동 확인이 어떻게 작동하는지 이해해야 합니다. 모델에서 유효성 검사 규칙을 정의하는 경우 다음과 같습니다.

protected $validate = [
    'name'  => 'require|max:25',
    'age'   => 'number|between:1,120',
    'email' => 'email',
];
로그인 후 복사

이 정의는 모델의 유효성 검사 속성을 정의합니다. 이 속성은 확인해야 하는 규칙이 포함된 배열입니다. 사용 중에 $model->validate($data) 메소드를 호출하여 데이터를 확인할 수 있습니다. $data 매개변수는 확인이 필요한 데이터입니다. 확인에 성공하면 메서드는 true를 반환하고, 그렇지 않으면 일련의 오류 메시지를 반환합니다. $model->validate($data)方法来对数据进行验证。$data参数是需要进行验证的数据,如果验证通过,方法会返回true,否则会返回一个错误信息的数组。

但是,在有些情况下,我们调用validate()方法时,并没有进行自动验证。这是因为,thinkphp默认情况下并不会对数据进行强制的验证。如果我们想要对数据进行验证,需要手动调用验证方法,如下所示:

// 强制进行自动验证
$model->isUpdate(true)->validate($data);
로그인 후 복사

在这里,我们将isUpdate方法设置为true,表示这是一个更新操作,这样我们就可以强制进行自动验证了。

除了手动调用以外,我们还可以在模型中覆盖$updateValidate

그러나 경우에 따라 validate() 메소드를 호출할 때 자동 검증이 수행되지 않습니다. thinkphp는 기본적으로 데이터의 필수 검증을 수행하지 않기 때문입니다. 데이터를 확인하려면 아래와 같이 확인 메서드를 수동으로 호출해야 합니다.

// 在模型中定义强制验证
protected $updateValidate = true;
로그인 후 복사
여기에서는 isUpdate 메서드를 true로 설정하여 이것이 업데이트 작업임을 나타냅니다. 이제 자동 확인을 강제할 수 있습니다.

수동 호출 외에도 아래와 같이 모델의 $updateValidate 속성을 ​​재정의하여 강제 유효성 검사를 설정할 수도 있습니다. 🎜rrreee🎜이런 방식으로 데이터 유효성 검사는 작업 중에 자동으로 수행됩니다. 업데이트 작업 . 🎜🎜요약하자면, thinkphp는 기본적으로 데이터에 대한 강제 유효성 검사를 수행하지 않습니다. 모델에서 강제 유효성 검사 속성을 수동으로 호출하거나 설정해야 합니다. 자동 확인을 사용하는 경우 확인 규칙이 다를 수 있으므로 신규 작업과 업데이트 작업을 구별하는 데 주의가 필요합니다. 🎜

위 내용은 thinkphp가 자동으로 확인할 수 없으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿