Bonjour cella fait maintenant deux jours que je suis a la recherche d'un moyen de vérifier lors de la soumission d'un formulaire d'inscription, si le pseudo existe déjà, si le mail existe également, ainsi que de savoir si une clé beta est déjà utilise ou non.
Une fois que tu as mis tes validations dans ton model, il te suffit de faire sa dans le controlleur :
$this->User->create($this->request->data);
if($this->User->validates()){
// Ensuite tu sauves
}
Il suffit a mon avis de faire un simple find avec conditions :
$user = $this->User->find('first', array(
'conditions' => array(
'pseudo' => $this->request->data'User']'pseudo'],
'email' => $this->request->data'User']'email'],
'key' => $token_key
)
));
if(!$user){
if( $this->User->save($this->request->data) ){
// success
}
}else{
$this->Session->setFlash('Erreur, vos identifiants existent deja');
}
Quelque chose dans ce genre je pense. Essayes et dis moi
Non il a plus rapide dans ton model User :
<?php
public $validate = array(
'username' => array(
'uniq' => array(
'rule' => 'isUnique',
'message' => "Erreur : pseudo déjà utilisé"
)
)
);
?>
Cherche le mot clef : isUnique. Sur ce page :
http://book.cakephp.org/2.0/fr/models/data-validation.html
Effectivement toutes les règles de validation sont à mettre dans les modèles par pitié :)
N'oublie pas non plus des règles de bases comme 'notEmpty'
merci mais je ne vois pas comment l’intégrer dans le controller
<?php
class UsersController extends AppController {
function login(){
if($this->request->is('post')){
if($this->Auth->login()){
return $this->redirect($this->Auth->redirect());
}else{
$this->Session->setFlash("Login ou mot de passe incorrect","notif",array('type' => 'alert-error'));
}
}
}
function logout(){
$this->Auth->logout();
$this->Session->setFlash("Vous êtes maintenant déconnecteé","notif",array('type' => 'alert-success'));
$this->redirect("/");
}
function register(){
}
function dashboard(){
}
function admin_index(){
$d'users'] = $this->Paginate('User');
}
function admin_delet($id){
$this->User->delete($id);
$this->Session->setFlash("L'utilisateur a bien été supprimé","notif", array('type' => 'alert-success'));
$this->redirect($this->referer());
}
}
?>
Je préciserais également qu'il est souvent intelligent pour des raisons évidentes de mettre les règles de validation dans un constructor.