CakePHP3에서 사용자 지정 유효성 검사 구현
5632 단어 cakephp3
디렉토리 및 파일 작성
Model 디렉토리 아래에
Validation
디렉토리를 작성하고 그 안에 검증을 정의하는 파일을 작성하십시오.이번은 CustomValidation.php로 한다.
사용자 지정 유효성 검사 정의
이번에는 예로서 위도의 서식을 체크하는 함수를 구현한다.
<?php
namespace App\Model\Validation;
use Cake\Validation\Validation;
class CustomValidation extends Validation {
/**
* 緯度
* @param string $value
* @return bool
*/
public static function isValidLatitude($value) {
return (bool) preg_match('/^[0-9]+\.[0-9]+$/', $value);
}
}
맞춤 검증 사용 방법
사용할 Model 테이블 파일에서 위의 사용자 지정 유효성 검사를 호출합니다.
<?php
namespace App\Model\Table;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;
class SampleTable extends Table
{
/**
* Default validation rules.
*
* @param \Cake\Validation\Validator $validator Validator instance.
* @return \Cake\Validation\Validator
*/
public function validationDefault(Validator $validator)
{
$validator->provider('Custom', 'App\Model\Validation\CustomValidation');
$validator
->requirePresence('latitude', 'create')
->notEmpty('latitude', "入力されていません")
->add('latitude', 'latitudeRule', [
'rule' => ['isValidLatitude'],
'provider' => 'Custom',
'message' => "書式に誤りがあります",
]);
이 1문으로
Custom
라고 하는 키로 사용할 수가 있다. $validator->provider('Custom', 'App\Model\Validation\CustomValidation');
latitude라는 항목에 대해 커스텀 검증으로서 정의한 isValidLatitude 함수로 체크한다. (두 번째 인수의 latitudeRule은 임의의 문자열)
->add('latitude', 'latitudeRule', [
'rule' => ['isValidLatitude'],
'provider' => 'Custom',
'message' => "書式に誤りがあります",
]);
Reference
이 문제에 관하여(CakePHP3에서 사용자 지정 유효성 검사 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/owlbeck/items/e7dd458f854c470b333b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)