Bonjours à tous!
Je suis entrain d'apprendre Cakephp et j'ai un soucis pour le formulaire.
J'ai crée un formulaire il marche très bien cependant l'utilisateur pouvait rentrer n'importe quoi et les 2 champs photo était des inputs ou il fallait mettre le lien de l'image en dur. Pas très sexy vous l'avouerai. J'ai donc fait des validate et mit mon formulaire à jour pour l'accueil de photos. Mais, quand je soumet celui-ci ça recharge juste la page en me vidant les données. Aucune trace des infos ou d'erreur de cakephp :/ .
add.cpt
<?php
echo $this->Form->create('Love', array('type' => 'file'));
echo $this->Form->label('Prénom 1');
echo $form->input('nom1');
echo $this->Form->label('Photo de la personne');
echo $form->file('photo1');
echo $this->Form->label('Prénom 1');
echo $form->input('nom2');
echo $this->Form->label('Photo de la personne');
echo $form->file('photo1');
echo $this->Form->label('Petit mot');
echo $form->input('mot', array('rows' => '3'));
echo $this->Form->label('Date de rencontre');
echo $form->input('date', array('format' => 'dmY')); // ça respecte pas mon format donc si vous aviez une solution aussi pour ce problème ^^
echo $this->Form->label('mdp');
echo $form->input('password');
echo $form->end('Enregistrer', array('class' => 'btn primary')); // il ne veut pas non plus prendre la class le salaud
?>
ma function add() qui me sert aussi d'edit
function add($id=null) {
if (empty($this->data)) {
$this->Love->id = $id;
$this->data = $this->Love->read();
}
else {
if ($this->Love->save($this->data))
{
$this->flash('Votre love a été sauvegardé.','/loves');
}
}
}
Mon model
class Love extends AppModel {
var $name = 'Love';
var $validate = array(
'nom1' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
'message' => 'Le prénom 1 semble contenir de caractères spéciaux.',
),
),
'photo1' => array(
'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')),
'message' => 'Votre fichier ne semble pas être une image.'
),
'nom2' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
'message' => 'Le prénom 2 semble contenir de caractères spéciaux.',
),
),
'photo2' => array(
'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg')),
'message' => 'Votre fichier ne semble pas être une image.'
),
'mot' => array(
'minlength' => array(
'rule' => array('minlength', 6),
'message' => 'Allons allons, tu as surement plus a dire que ça :o)',
),
),
'date' => array(
'date' => array(
'rule' => array('date', 'dmy'),
'message' => 'La date est mauvaise',
),
),
'password' => array(
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Le mot de passe doit entre 6 et 20 caractères',
),
),
);
}
Désolé pour la longeur du code mais je ne vois vraiment pas où ça bug :/
Merci :)
pourquoi tu n'utilises pas
<?php echo $this->Form->input('file',array('label' => "ton label","type"=>'file'));?>
pour gérer tes images?
déjà comme tu utilises cake2 utilises les nouvelles façon de faire $this->request->data au lieu de $this->data et pour le formulaire $this->Form->input().
De plus, il manque le champ id dans ton form donc ta fonction n'a pas l'id et fait un insert