Bonjour à tous,

Je débute avec CakePHP depuis 3 jours.

J'ai fait le tutoriel pour la création d'un blog sur le cookbook
officiel, j'ai consulté l'API (que je trouve particulièrement mal
faite pour être honnête) et le manuel (jusqu'a ce qu'il disparaisse
puisqu'il semble que le cookbook et le manuel soit la même chose
maintenant...).

Je trouve l'utilisation de cakephp vraiment agréable mais la
documentation disponible me fait un peu peur, j'ai souvent du mal à y
trouver les réponses que je cherche.

Sur le cookbook, il parle de la validation des données et disent de
mettre le code suivant dans le model de notre application :

    var $validate = array
        (
                'title' => array
    (
                        'rule' => array('minLength', 1)
                ),
                'body' => array
    (
                        'rule' => array('minLength', 1)
                )
    );

J'ai créé un controller nommé articles_controller.php, un model
articles.php et les vues et layout correspondants. Le problème c'est
que mon filtrage ne fonctionne pas.... Si je laisse le formulaire vide
et que je valide, aucune erreur et l'enregistrement se fait.

Je poste ci dessous le code de mon controller et celui de ma vue,
quelqu'un pourrait il m'expliquer pourquoi la validation ne s'effectue
pas ?

Merci d'avance,
Archi

Code du controller :

<?php
class ArticlesController extends AppController
{

        var $name = 'Articles';


        function index()
        {
                $this->set('articles', $this->Article->find('all'));
        }

        function lire($id = null)
        {
                if(!$id)
                {
                  $this->redirect(array('action' => 'index'), 301);
                }
                $this->Article->id = $id;
                $this->set('article', $this->Article->read());
        }

        function ecrire()
        {
                if (!empty($this->data))
                {
                        if ($this->Article->save($this->data))
                        {
                                $this->flash('Votre post a été 
sauvegardé.','/articles');
                        }
                }
        }

        function supprimer($id = null)
        {
                $id2 = $this->Article->findById(intval($id));

                if(empty($id2))
                {
                        $this->cakeError('error404', array(array('url' => 
$this->action)));
                }

                $this->Article->del($id);
                $this->flash('The post with id: '.$id.' has been deleted.', '/
articles');
        }

        function edit($id = null)
        {
                if (empty($this->data))
                {
                        $this->Article->id = $id;
                        $this->data = $this->Article->read();
                }
                else
                {
                        if ($this->Article->save($this->data['Article']))
                        {
                                $this->flash('Votre post a été mis à 
jour.','/articles');
                        }
                }
        }

        function impression($id = null)
        {
                if(null === $id)
                {
                $this->redirect($this->referer());
                }

                $article = $this->Article->findById(intval($id));

                if(empty($article))
                {
                $this->redirect($this->referer());
                }

                vendor("pdf/fpdf");
                $this->layout = "pdf_layout";
                $this->set("article", $article);
        }

}
?>

Code de la vue :

<h1>Ajouter un Post</h1>
<?php
echo $form->create('Article', array('action' => 'ecrire'));
echo $form->input('title');
echo $form->input('body', array('rows' => '10'));
echo $form->end('Sauvegarder le Post');
?>
--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier  : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à