Bonjour,
je suis sous CakePHP 3 et je ne sais pas comment avoir plusieur validation par model.
C'est a dire que je voudrais dans mon controller avoir un fonction register() et une fonction account permettant de modifier le compte de l'utilisateur. Mais ces deux fontion ne devrait pas avoir les même règles de validation.
Merci d'avances

2 réponses


Lartak
Réponse acceptée

Bonjour.
C'est pourtant expliqué dans la documentation de CakePHP : Utiliser un Ensemble de Validation Différent.
Il te suffit donc d'en créer les fonctions :

public function validationRegister(Validator $validator)
{
    /* Tes règles de validation */
}

public function validationAccount(Validator $validator)
{
    /* Tes règles de validation */
}

Puis dans le controller :

public function register()
{
    $user = $this->Users->newEntity($this->request->data, ['validate' => 'register']);
    /* Le reste du code de la fonction */
}

public function account()
{
    $user = $this->Users->get($this->Auth->user('id'));
    if ($this->request->is('put')) {
        $this->Users->patchEntity($user, $this->request->data, ['validate' => 'account']);
        /* Suite du code */
    }
    /* Le reste du code de la fonction */
}
Imillix
Auteur

Merci beaucoup et désolé je n'avais pas bien lu la doc