Bonjour à tous,
Je développe actuellement une application Web en utilisant CakePHP 3.3.5.
J'ai créé un formulaire de contact avec une vérification de l'email et du mot de passe.
Lorsque je valide le formulaire et que le champ de confirmation de l'email ou du mot de passe est vide, alors une erreur apparait. J'utilise pour ça la fonction "notEmpty" du Validator (Voir ci-dessous).

Cependant, lorsque j'entre un adresse email ou un mot de passe de confirmation qui n'est pas identique au premier, la vérification n'affiche aucune erreur et le formulaire est validé.
Voici ci-dessous les différentes fichiers et fonctions utilisées :
UsersTable.php
public function validationAccount(Validator $validator)
{
$validator
->notEmpty('email');
$validator
->notEmpty('confirm_email')
->add('confirm_email', 'no-misspelling', [
'rule' => ['compareWith', 'email'],
'message' => 'Les mails ne sont pas égaux',
]);
$validator
->notEmpty('password');
$validator
->notEmpty('confirm_email')
->add('confirm_password', 'no-misspelling', [
'rule' => ['compareWith', 'password'],
'message' => 'Les mot de passe ne sont pas égaux',
]);
return $validator;
}
create_account.php
<?= $this->Form->create($user, ['context' => ['validator' => 'account'], 'url' => '/users/create_account']) ?>
<fieldset>
<legend ></legend>
<legend class="title_create_account" ><?= __('Create Account') ?></legend>
<?php
echo $this->Form->input('email', ['id' => 'email', 'type' => 'email', 'name' => 'email', 'label' => false, 'placeholder' => __('email').'*']);
echo $this->Form->input('confirm_email', ['id' => 'confirm_email', 'type' => 'email', 'name' => 'confirm_email', 'label' => false, 'placeholder' => __('confirm email').'*' ]);
echo $this->Form->input('password', ['id' => 'password', 'type' => 'password', 'name' => 'password', 'label' => false, 'placeholder' => __('password').'*' ]);
echo $this->Form->input('confirm_password', ['id' => 'confirm_password', 'type' => 'password', 'name' => 'confirm_password', 'label' => false, 'placeholder' => __('confirm password').'*' ]);
?>
</fieldset>
<?= $this->Form->button( __('Submit') , array('class' => 'submit-class btn btn-block google btn-corridor') ) ?>
<?= $this->Form->end() ?>
UsersController.php
public function createAccount()
{
$this->viewBuilder()->layout('layout_create_account');
$user = $this->Users->newEntity();
if (!empty($this->request->data)) {
$myRequest = $this->request->data;
$user = $this->Users->patchEntity($user, $myRequest);
$user->email = $myRequest['email'];
$user->password = $myRequest['password'];
if ($this->Users->save($user)) {
$id = $user->id;
} else {
$this->Flash->error(__('The user could not be saved. Please, tare some certified users at this adress with different house type.'));
}
}
$this->set('user',$user);
}
Merci !!