Bonjour,
Je fait actuellement le tuto sur l'internationalisation, c'est stylé, encore un grand Merci Grafikart !

Mais j'ai une question, enfin plutot un probleme : Pour que le tuto marche, je ne dois pas faire de validation (sinon une erreur sql...).
J'ai essayé de bidouillé :

function loadValidation() {
    $this->validate = array(
            'name' => array(
                'rule' => 'notEmpty',
                'message' => __('This field cannot be left blank')
            )
    );
    }

Mais aucun résultat... :(

Au passage je vous montre comment est fait le systeme de validation (pas juste la variable, car je souhaite activé i18n sur les messages d'erreur :

class AppModel extends Model {
    function beforeValidate() {
        $this->loadValidation();
        return true;
    }
}

Puis le code precedent.

Y'a t'il une solution pour faire une vérification par cakePHP malgré l'internationalisation ? (C'est dommage d'avoir un site proprement codé et multilingue, et on peut envoyé un formulaire totalement vide ^^)
Un grand Merci d'avance :D

3 réponses


Salut, as tu trouvé la solution car cela m’intéresse aussi. Merci

En fait le principe d'écrire le message directement dans le Model casse un peu le principe du MVC. Ce qu'il faut c'est faire une détection de l'erreur dans le Model, comme tu as fais :

function loadValidation() {
    $this->validate = array(
            'name' => array(
                'rule' => 'notEmpty'
            )
    );
    }

Et d'afficher le message d'erreur dans la Vue :

<?php $this->Form-> input('name', array(
    'error' => __('This field cannot be left blank')
));?>

Et là le système devrait bien fonctionner .
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options

Merci beaucoup :)