모델에서 유효성을 검사했습니다. 또한, 나는 captcha 코드를 검사하기 위해 컨트롤러에서 몇 가지 유효성을 검사했다. 그런 다음 응용 프로그램이 모델 유효성 검사 오류를 표시하지 않습니다. 컨트롤러 코드에 주석을 달면 모델 유효성 검사가 제대로 작동하고 오류가 표시됩니다. 그때 if ($this->User->validates())
으로 if ($this->User->save($this->data, array('validate' => 'only')))
라인을 교체 한모델과 컨트롤러 모두에서 cakephp 확인
if (!empty($this->data)) {
$this->User->set($this->data);
$this->User->create();
$captcha = $this->Session->read('CAPTCHA_CODE');
if (strtolower($captcha) != strtolower($this->data['User']['captcha']))
{
$this->User->invalidate('captcha', __('Sorry, your entry did not match', true));
}
if ($this->User->save($this->data, array('validate' => 'only')))
{
if ($this->User->save($this->data, array('validate' => 'false'))) {
$this->Session->setFlash(__('Registered successfully', true));
$this->redirect('success');
}
}else {
$this->Session->setFlash(__('Please, try again.', true));
}
}
모두하지 작업 ..
모델 코드 (샘플)
class User extends AppModel {
var $name = 'User';
var $validate = array(
'username' => 'notempty',
'firstname' => 'notempty'
);
}
컨트롤러 코드, 또한 작동하지 않습니다.
MVC와 관련하여 모델에는 captcha 필드가 없어야합니다. UserModel은 "captcha"를 인식하지 않아야합니다. 지금까지, 나는 그 문제에 대한 적절한, 논리적 인 해결책을 찾지 못했습니다. – hongster
@hongster, 이것은 좋은 지적입니다. new_password 필드가 confirm_password 필드와 일치하는지 여부를 "확인하는"문제가 있습니다. 그러나이 논리를 모델에 넣는 것은 의미가 없습니다. 암호와 관련하여 암호 규칙에 대해서만 유효성을 검사합니다. 나를 똑바로 세워 줘서 고마워. – rob5408