저는 CakePHP 2.3.8을 사용하고 있으며, 특정 유효성 검사 규칙을 필요에 따라 설정하는 방법이 있는지 알아 내려고하고 있습니다.CakePHP에서 즉석에서 유효성 검사 변경하기
예를 들어 내 사용자 모델에는 phone_number, username, email 및 password 유효성 검사가 있습니다. 사용자가 사용자 이름을 변경하려면 전화 번호가 필요하지 않습니다. 즉, 사용자 이름을 변경할 때 phone_number가 데이터에 존재할 것으로 예상되므로 필수로 설정할 수 없습니다.
public $validate = array(
'username' => array(
'minLength' => array(
'rule' => array('minLength', '3'),
'message' => 'A username with a minimum length of 3 characters is required'
),
'unique' => array(
'rule' => 'isUnique',
'message' => 'This username has already been taken.'
)
),
'email' => array(
'email' => array(
'rule' => array('email'),
'message' => 'Please enter a valid email address.',
),
'unique' => array(
'rule' => 'isUnique',
'message' => 'This email address is already in use'
)
),
'password' => array(
'rule' => array('minLength', '8'),
'message' => 'A password with a minimum length of 8 characters is required'
),
'phone_number' => array(
'rule' => array('valid_phone'),
'message' => 'Invalid phone number',
)
);
내 컨트롤러에서 예상되는 입력이 게시되었는지 확인하는 작업입니다. 그렇지 않은 경우는 별도의 코딩을 많이있게처럼이 내가이있는 형태를 가지고 특히, 내가 느끼는, 작동하지만,이 검증되도록 null로 해당 인덱스 ... 같은
public function change_username(){
if(!isset($this->request->data['username'])){
$this->request->data['username'] = null;
}
$this->ExampleModel->set($this->request->data);
//if it wasn't posted, the username index will be created but set to null. This is my workaround for setting something to "required"
if($this->ExampleModel->validates() == true){
//do something
}
else{
//do something
}
}
설정 많은 입력.
필자는 필요한 입력 내용의 유효성을 검사하려고 시도했지만 데이터가 게시되지 않으면 무시됩니다. 예 :
if($this->ExampleModel->validates(array('fieldList' => array('phone')) == true){
.....
}
"전화"가 게시되지 않은 경우 유효성을 검사하지 않습니다.
해당 입력의 유효성 검사에 즉석에서 필요한 설정 방법이 있습니까? 여러 유효성 검사 룰 세트를 사용하여 this article을 찾았고 원하는대로 수행 할 수 있지만 많은 재 코딩이 필요했습니다.
유효성을 검사하기 전에 입력을 필수로 설정할 수 있습니까?
만 양식 필드를 이메일, 우선은 모릅니다 만 이메일이 확인됩니다 usename에 대해 걱정할 필요가 보여 경우 비밀번호가 검증을 : 당신이 원하는대로 당신은 할 수 체인 여러만큼 규칙을 만들에 추가 호출 –