저는 Cake을 처음 접하고 그것을 배우기 위해 응용 프로그램을 작성합니다. 내 사용자 등록 시스템에 몇 가지 문제가 있습니다. CakePHP Auth 구성 요소가있는 고유 한 사용자 이름과 이메일
public function register() {
$this->set('title_for_layout', 'Register');
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash('The user has been saved');
$this->redirect(array('action' => 'register'));
} else {
$this->Session->setFlash('The user could not be saved. Please, try again.');
}
}
}
그리고이 방법이 내 User
모델 내에서
Users
컨트롤러에
이 작동
public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
, 사용자가 추가됩니다 내 users
내 사용자 이름, 전자 메일 및 해시 암호를 사용하여 데이터베이스에있는 테이블. 그러나 사용자 이름과 전자 메일이 고유한지 확인하기 위해 수행되는 검사가 없습니다.
내 제한된 이해에서 사용자 이름과 이메일 입력란이 테이블에 입력되기 전에 고유한지 확인하려면 User
모델에 유효성 검사 규칙을 추가해야합니다. 순간 난 그냥이 유효성 검사 규칙이 있습니다
public $validate = array(
'username' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A username is required'
)
),
'email' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'An email is required'
)
),
'password' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A password is required'
)
)
);
또한, 내 등록 양식은 passwordConf
라는 Password (confirm)
필드가 있습니다. 사용자가 사용자 테이블에 입력되기 전에 사용자가 암호를 올바르게 입력했는지 확인하고 싶습니다. 그러나 어떻게해야하는지 잘 모르겠습니다. 나는 어딘가에 내 등록 방법에 두 암호가 같은지 확인해야 할 것 같아요.
도움 주셔서 감사합니다.
을 설정하지? MySQL을 사용하고 있습니까? – SuperTron
방금 내 사용자 테이블에 두 개의 고유 키를 추가했습니다. 하나는 사용자 이름 용이고 다른 하나는 전자 메일 용입니다. 그러나 이제 Cake는 멋진 오류 메시지보다는 SQL 오류를 던집니다. 나는 응용 프로그램에서 그것을 할 수있는 방법이 있다고 확신한다. 나는 Cake 문서에서 그것을 어떻게 찾을 수 없는지 모른다. 어느 쪽이든 감사합니다, 그 고유 열쇠는 어쨌든 전에 추가 되었어야합니다 :) –