Bonjour,
sa fait plusieurs heures que je me prend la tête avec les règles de validations..
Un peut de code s'impose :
Le modèle:
<?php
class Post extends AppModel {
public $validate = array(
'title' => array(
'between' => array(
'rule' => array('between', 5, 15),
'required' => true,
'message' => 'Entre 5 et 15 caractères'
)
)
);
}
La vue :
<?php
echo
$this->Form->input('title', array(
'label' => 'Titre',
'placeholder' => 'Votre titre...',
'x-webkit-speech' => 'on'
)) .
$this->Form->textarea('content', array(
'label' => 'Contenu du billet :',
'escape' => false,
'rows' => 7,
'cols' => 4,
'class' => 'wysiwyg',
'id' => 'textarea2',
'div' => false
)) .
$this->Form->submit('Poster', array('class' => 'white', 'div' => false)) .
$this->Form->submit('Effacer', array('type' => 'reset', 'class' => 'white', 'div' => false)) .
$this->Form->end();
Et enfin le controller :
public function newArt() {
$this->loadModel('Post');
if(!empty($this->request->data)){
if($this->Post->validates()){
$this->Post->read(null, 1);
$this->Post->set(array(
'name' => $this->request->data'Post']'title'],
'content' => $this->request->data'Post']'content'],
'user_id' => $this->Session->read('Auth.User.id')
));
if ($this->Post->save()) {
$this->Session->setFlash('Votre billet a bien été envoyé');
$this->redirect(array('controller' => 'admins', 'action' => 'index'));
}
}
}
}
Avec ce code peut importe ce que je mes dans l'input 'title', j'ai l'erreur 'Entre 5 et 15 caractères',
c'est surement une erreur bénigne, mais elle m’empêche d'avancer..
Merci d'avance!
if($this->Post->validates()){
Tu oublie d'envoyer les données au model, là tu lui demande de valider du vide :D