Bonjour ,
je rencontre un petit souci avec CakePHP et le composant Auth
j'ai suivi le tuto sur l'espace membre -> tout fonctionne
mais je souhaite me loguer avec le champs mail et non username
j'ai procèdé au modification suivante :
mon formulaire
<?= $this->Form->create('User'); ?>
<?= $this->Form->input('mail', array('label' => 'Adresse mail','class' => 'form-control')); ?>
<?= $this->Form->input('password', array('label' => "Mot de passe",'class' => 'form-control')); ?>
<?= $this->Form->input('password2', array('type' => 'password', 'label' => "Confirmer Mot de passe",'class' => 'form-control')); ?>
<?= $this->Form->end(array('label' => "Créer mon compte",'class' => 'btn_l btn-success pull_right') ); ?>
mon appcontroller
public $components = array(
'Session',
'Cookie',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'mail')
)
)
)
);
et j'ai bien un champs mail dans ma BDD
mais quand je soumets le formulaire , rien ne se passe je n'ai plus la requete sql de debug -> j'ai l'impression qu'il fait meme plus de requete
curieusement je mets 'fields' => array('username' => 'password') et la bingo j'ai une requete
SELECT User
.id
, User
.mail
, User
.phone
, User
.password
, User
.firstname
, User
.lastname
, User
.society
, User
.siret
, User
.street
, User
.street2
, User
.cp
, User
.city
, User
.country
, User
.avatar
, User
.com
, User
.active
, User
.token
, User
.created
, User
.role
FROM podoservice\_account
.users
AS User
WHERE User
.password
= 'test' LIMIT 1
j'ai l'impression qu'il aime pas mon champs mail ...
Heu est-ce qu'on peut voir aussi le controller User ? Et est-ce que tu peux utiliser les options code, parce que là sérieusement c'est un chouia illisible.
<?= $this->Form->input('username', array('label' => 'Adresse mail','class' => 'form-control')); ?>
Et comme çà ?
Lol -_- Tu utilise le champ Username en changeant le label ? Hum, ok.
C'est pas ce qu'il demande je pense, mais bon...
Bonjour books.
Il faut que tu l'indiques dans ton composant Auth de ton AppController , que tu utilises le champ mail et non le champ username pour l'identification, comme ceci :
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'mail')
)
)
)
);
Si je n'ai pas fait d'erreur (je ne pense pas en tout cas), tout devrait fonctionner :)
Bonjour
Carpetos -> Merci pour la bidouille mais je veux faire quelque chose de propre et faire les bons liens avec ma BDD
Lartak11 -> J'avais déja fait la manip et cela ne fonctionné pas , je vais re-essayer et revenir vers vous
en tous cas merci
Je pense qu'à partir du moment où tu spécifies le champ username, il faut aussi préciser le champ password
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'mail','password'=>'password')
)
)
)
);