Bonjour,
Je travail sur mon site web personnel. Je suis entraine de creer l'espace memebre de mon site web. Quand les uilisateurs sont inscrit. j'envois un courrielle de confirmation avec une l'id de l'utilisateur et le token qu'ils sont enregistrés dans ma basse de donné.
Quand l'utilsateur clique sur le lien je fait une requête dans m'a table users :
$user = $this->Users->find('all',[
'conditions' => ['Users.id' => $id, 'Users.token' => $token,'Users.active' => 0],
'fields' => ['Users.id','Users.token','Users.active']
])->first();
Si le lien est ironné je fait ceci
if (!$user) {
die('not ok');
$this->Flash->error(__("Désolé, le lien de validation n'est pas valide."));
$this->redirect(['action'=>'login']);
}
Le problème est que je ne sais pas quoi faire un débug de ma variable $users :
object(App\Model\Entity\User) {
'id' => (int) 1,
'token' => '3d1667c3bf7bae75ff0ed0a5ba8a57bf',
'active' => false,
'[new]' => false,
'[accessible]' => [
'username' => true,
'email' => true,
'password' => true,
'role' => true,
'avatar' => true,
'active' => true,
'confirm_password' => true
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[repository]' => 'Users'
}
J'ai récupé l'entité qui a l'id et le token qui sont passé en paramètre dans l'url.
Le problème est que dans la documentation je ne réussit pas trouver comment mettre à jour une entité.
Merci de votre aide.
Bonjour,
tu peux faire quelque chose dans ce style :
if (!$user) {
$this->Flash->error(__("Désolé, le lien de validation n'est pas valide."));
$this->redirect(['action'=>'login']);
}
$user->set('active', true);
if($this->Users->save($user)){
$this->Flash->success(__("Votre compte est bien validé."));
$this->redirect(['action'=>'login']);
}
Bon courage
Regarde du côté de patchEntity puis tu fais un save
classique pour sauvegarder ton entité ;)