[英]Checking for 'isUniqueUsername' in cakephp doesn't seem to work?
我有一個注冊表,當用戶注冊時,它會詢問他們的用戶名,密碼和電子郵件。 對於用戶名,我有一些規則,例如:
話雖這么說,我似乎無法讓我的表格捕捉重復的用戶名,我希望有人可以幫助我解決這個問題!
這是我的User.php模型的Validate:
public $validate = array(
'username' => array(
'nonEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'A username is required',
'allowEmpty' => false
),
'between' => array(
'rule' => array('between', 5, 15),
'required' => true,
'message' => 'Usernames must be between 5 to 15 characters'
),
'unique' => array(
'rule' => array('isUniqueUsername'),
'message' => 'This username is already in use'
)
)
);
為了示例,我刪除了第三條規則(alpha /數字/破折號)
接下來是我的功能,用於檢查數據庫中的用戶名:
function isUniqueUsername($check) {
$username = $this->find(
'all',
array(
'fields' => array(
'User.id',
'User.username'
),
'conditions' => array(
'User.username' => $check['username']
)
)
);
if(!empty($username)){
if($this->data[$this->alias]['id'] == $username['']['id']){
return true;
}else{
return false;
}
}else{
return true;
}
}
這是“注冊”的控制器功能
public function register() {
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been created'));
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('The user could not be created. Please, try again.'));
}
}
}
更改
'unique' => array(
'rule' => array('isUniqueUsername'),
'message' => 'This username is already in use'
)
至
'unique' => array(
'rule' => 'isUnique',
'message' => 'This username is already in use'
)
您不需要該功能來檢查唯一性,Cake用魔術為您做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.