Bonjour à tous,
Je bloque sur la façon de récuperer le message d'erreur de validation dans un element flash

// src/Model/Table/NewsletterTable.php
   public function validationDefault(Validator $validator)
    {
     $validator
     ->NotEmpty('newsletteremail', __("Vous devez indiquer votre Email!"))
     ->add('newsletteremail',[
        'unique'=>[
        'rule'=>'validateUnique',
        'provider'=>'table',
        'message' =>__("Vous êtes apparement déjà inscrit à la newsletter !")
        ],
        'validFormat'=>[
        'rule' => 'email',
        'message' =>__( "Votre e-mail doit être valide !")
        ]
        ]);
     return $validator;
 }

Mon debug qui récupère bien l'erreur...

// src\Controller\NewslettersController.php
object(App\Model\entity\Newsletter) {

    'new' => true,
    'accessible' => [
        'newsletteremail' => true
    ],
    'properties' => [],
    'dirty' => [],
    'original' => [],
    'virtual' => [],
    'errors' => [
        'newsletteremail' => [
            'unique' => 'Vous êtes apparement déjà inscrit à la newsletter !'
        ]
    ],
    'repository' => 'Newsletters'

comment passer le message dans mon élément ?

$this->Flash->error("mon  message");

d'avance merci

3 réponses


Xen0risDEV
Réponse acceptée

Bonjour,

$this->Flash->error($this->validator['errors']['newsletteremail']['unique']); 
Ptitchef
Auteur

Merci Xen0risDEV, en fait j'ai modifié depuis et j'ai fait plûtot celà :

$this->Flash->error_newsletter("Merci de vérifier vos informations:",
                        [
                        'params' => [
                        'message'=> $newsletter['errors']
                        ]
                        ]);

et j'ai fait un foreach $newsletter['errors'] pour récuperer l'ensemble des messages dans mon element
Cordialement

Bonsoir, éventuellement ça peux aussi marche comme cela :)

Cordialement.