Bonjour,

Voilà j'ai une vue avec un formulaire, qui a son exécution me donne l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'intitule' cannot be null
Mais je n'ai pas du tout de colonne "intitule" dans mon formulaire, qui ne me sert qu'a envoyé un mail et ne remplit pas du tout ma base de donnée.

La vue:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 <form id="formTarifs" method="post" action="<?php echo $this->baseUrl(); ?>/?link=tarifs2#form" name="formulaire" class="form">
                         <?php
                        /* Messages d'erreur du formulaire*/
                        echo $this->partial('index/messenger.phtml',array(
                                'prepend' => 'Le formulaire n\'a pas été envoyé, merci de vérifier les points suivant :',
                                'erreurs' => $this->erreurs
                        ));
 
                        ?>
                                            <a name="form"></a>
                         <table style="margin-left:8px; margin-top:-5px ">
                                <tr ><td><label for="societe">Soci&eacute;t&eacute; * </label></td>
                                        <td>
                                                <?php echo $this->formulaire['societe']['element']; ?>
                                        </td>
                                </tr>		<tr class="noprint"><td><label for="nom">Nom * </label></td>
                                        <td>
                                                <?php echo $this->formulaire['nom']['element']; ?>
                                        </td>
                                </tr>
                                <tr ><td><label for="nom">Pr&eacute;nom </label></td>
                                        <td>
                                                <?php echo $this->formulaire['prenom']['element']; ?>
                                        </td>
                                </tr>
 
                                <tr ><td><label for="email">E-mail * </label></td>
                                        <td>
                                                <?php echo $this->formulaire['email']['element']; ?>
                                        </td>
                                </tr>
 
                                <tr><td><label for="tel">Tel. * </label></td>
                                        <td>
                                                <?php echo $this->formulaire['telephone']['element']; ?><br />
                                                <span class="noprint">* Champs obligatoires</span>
                                        </td>
                                </tr>
                                <tr><td><br /><label for="message">Message * </label></td>
                                        <td><br />
                                                <?php echo $this->formulaire['message']['element']; ?>
                                        </td>
                                </tr>
                                <tr>
                                    <td></td>
                                    <td><?php echo $this->formulaire['submit']['element']; ?></td>
                                </tr>
                         </table>
</form>
Le formulaire dans mon contrôleur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
protected function getFormTarifContact (){
		//*** Params du formulaire
        $form = new Zend_Form();
        $form->setMethod('post');
		// Destinataires
        $elt_dest = $form->createElement('select','destinataire')
      ->setLabel('Destinataire')
      ->addMultiOptions(array('commercial'=>'Service Commercial','technique'=>'Service Technique','communication'=>'Service Communication','tempo'=>'Client Tempo'));
		$form->addElement($elt_dest);
 
    //Société
		$elt_societe = $form->createElement('text', 'societe')
			->setLabel('Soci&eacute;t&eacute;* :')
			->setRequired(true)
      ->setAttrib('style','width: 225px')
			->addValidator('NotEmpty', true,  array(
				'messages' => array(
					'isEmpty' => "Donnée manquante : Soci&eacute;t&eacute;")));
		$form->addElement($elt_societe);
 
		// Nom
		$elt_nom = $form->createElement('text', 'nom')
			->setLabel('Nom* :')
			->setRequired(true)
      ->setAttrib('style','width: 225px')
			->addValidator('NotEmpty', true,  array(
				'messages' => array(
					'isEmpty' => "Donnée manquante : Nom")));
		$form->addElement($elt_nom);
 
		// Prénom
		$elt_prenom = $form->createElement('text', 'prenom')
      ->setAttrib('style','width: 225px')
			->setLabel('Prénom :');
		$form->addElement($elt_prenom);
 
		// Email
		$mailValidator = new Zend_Validate_EmailAddress();
		$mailValidator->setMessages( array(
		    Zend_Validate_EmailAddress::INVALID => 'Adresse mail invalide',
		    Zend_Validate_EmailAddress::INVALID_HOSTNAME  => 'Adresse mail invalide',
		    Zend_Validate_EmailAddress::INVALID_MX_RECORD  => 'Adresse mail invalide',
		    Zend_Validate_EmailAddress::DOT_ATOM  => 'Adresse mail invalide',
		    Zend_Validate_EmailAddress::QUOTED_STRING  => 'Adresse mail invalide',
		    Zend_Validate_EmailAddress::INVALID_LOCAL_PART  => 'Adresse mail invalide',
		));
 
		$elt_email = $form->createElement('text', 'email')
			->setLabel('Votre e-mail* : ')
      ->setAttrib('style','width: 225px')
			->addValidator($mailValidator)
			->setRequired(true)
			->addValidator('NotEmpty', true,  array(
				'messages' => array(
					'isEmpty' => "Donnée manquante : email")));
		$form->addElement($elt_email);
 
		// Téléphone
		$elt_telephone = $form->createElement('text', 'telephone')
			->setLabel('Téléphone* : ')
      ->setAttrib('style','width: 225px')
			->setRequired(true)
			->addValidator('NotEmpty', true,  array(
				'messages' => array(
					'isEmpty' => "Donnée manquante : téléphone")));
		$form->addElement($elt_telephone);
 
		// Message
		$elt_message = $form->createElement('textarea', 'message')
			->setLabel('Votre message : ')
			->setAttrib('rows','4')
			->setAttrib('cols','50')
      ->setAttrib('style','width: 225px;margin-left: 5px;height: 5em;')
			->setRequired(true)
			->addValidator('NotEmpty', true,  array(
				'messages' => array(
					'isEmpty' => "Donnée manquante : message")));
		$form->addElement($elt_message);
 
		// Hidden fields to get the simulation values (SM: 13/02/2009)
		$simulationRan = $form->createElement('hidden','simulationRan');
		$form->addElement($simulationRan);
		$nbAgencies = $form->createElement('hidden','nbAgencies');
		$form->addElement($nbAgencies);
		$nbOffers = $form->createElement('hidden','nbOffers');
		$form->addElement($nbOffers);
		$nbSites = $form->createElement('hidden','nbSites');
		$form->addElement($nbSites);
		$nbEnseignes = $form->createElement('hidden','nbEnseignes');
		$form->addElement($nbEnseignes);
		$optWeb = $form->createElement('hidden','optWeb');
		$form->addElement($optWeb);
		$optLink = $form->createElement('hidden','optLink');
		$form->addElement($optLink);
 
		//*** Submit
		$elt_submit = $form->createElement('submit','submit')
			->setLabel('Valider')
      ->setAttrib('style','width: 230px;margin-left: 5px;margin-bottom: 3em;')
			->setIgnore(true); // permet de ne pas le prendre en compte lors de l'update sinon affichage du message "Unknown column 'submit' in 'field list'"
		$form->addElement($elt_submit);
 
		$form->setElementDecorators(array(
            array('ViewHelper') // affiche uniquement l'élément du formulaire sans les messages d'erreurs
        ));
 
		// Echappe les espaces en début de saisie
		$form->setElementFilters(array('StringTrim')); 
 
		return $form;
	}
et mon contrôleur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 
 public function tarifs2Action() {
		$this->_helper->layout->setLayout('accueil');
 
 
		$this->view->headLink()->appendStylesheet(PUBLIC_PATH . 'js/jquery/ui/old/themes/default/ui.all.css');
		$this->view->headLink()->appendStylesheet(DEFAULT_SKIN_PATH . 'styles/tarifs2.css');
		$this->view->headLink()->appendStylesheet(DEFAULT_SKIN_PATH . 'styles/recherches.css');
		$this->view->headLink()->appendStylesheet(DEFAULT_SKIN_PATH . 'styles/tarifs-print.css','print');
                $this->view->headLink()->appendStylesheet(DEFAULT_SKIN_PATH . "styles/style.css");
 
			//Instancie le formulaire
		$form = $this->getFormTarifContact();
 
		//Vérifie qu'on envoie les infos par POST
		if ($this->_request->isPost()) {
 
			//Récupération des données
			$formData = $this->_request->getPost();
                        print_r($formData);
 
                       // exit;
			//Vérifie la validité des données
			if ($form->isValid($formData))
			{
 
				//Essaie d'envoie du mail à l'agence
				try{
					//Extrait les valeurs du formulaire et ajoute un prefix aux variables
					extract($form->getValues(),EXTR_PREFIX_ALL,'p');
 
				// Défini les séparateur en fonction du type de mail (txt/html)
				$txtArray = array(  $p_prenom . " " . $p_nom . ",",
					'Email : ' . $p_email ,
					'Téléphone : ' . $p_telephone,
					'\n'
				);
				if ($p_simulationRan) {
					$txtArray2 = array(
					'Ayant fait la simulation suivante: ',
          'Nombre d\'enseignes: ' . $_nbEnseignes,
					'Nombre d\'agences: ' . $p_nbAgencies,
					'Nombre d\'offres totales: ' . $p_nbOffers,
          'Nombre de sites à lier: ' . $p_nbSites,
					//'Option minisite: ' . ($p_optWeb ? 'sélectionnée' : 'ignorée'),
					//'Option lien vers votre site: ' . ($p_optLink ? 'sélectionnée' : 'ignorée'),
					'\n'
					);
					$txtArray = array_merge($txtArray,$txtArray2);
				}
				$txtArray3 = array(
					'Vous adresse le message suivant : ',
					$p_message,
					'',
					"______________________________________________________________________",
					"Ce message vous est adressé à partir du site ".SITE_DOMAIN
				);
          $txtArray = array_merge($txtArray,$txtArray3);
 
          $msgHtml = nl2br(implode('<br />',$txtArray));
          $msgTxt = implode('\r\n',$txtArray);
					$mail = new Pi_Mail();
					$mail->setBodyText($msgTxt);
					$mail->setBodyHtml($msgHtml);
					$mail->setFrom($p_email, $p_prenom . ' ' . $p_nom);
					$mail->addTo('support@'.SITE_DOMAIN);
					$mail->setSubject('['.SITE_DOMAIN.'] Contact tarifs');
 
					if($mail->send()){
						$this->_helper->viewRenderer->setNoRender();
						echo "<div style='background: #fff;padding: 1em;'>Votre message est envoyé. Nous vous contacterons dès réception de celui-ci.<br />Vous allez &ecirc;tre redirig&eacute; en page d'accueil dans 3 secondes.</div>";
            $this->getResponse()->setRawHeader('Refresh:3; url=' . SITE_ABS_URL);
					} else {
						throw new Exception("Impossible d'envoyer l'email");
					}
				} catch (Exception $e) {
					foreach ($e->getMessage() as $item => $v) {
						foreach ($v as $error ){
							$this->view->erreurs[] = $error;
						}
					}
				}
			} else {
 
				//Récupère les erreurs et préremplie le formulaire
				$this->view->erreurs = array();
				$form->setDefaults($formData);
				foreach ($form->getMessages() as $item => $v) {
					foreach ($v as $error ){
						$this->view->erreurs[] = $error;
					}
				}
			}
 
		}
 
		$this->view->formulaire = $this->_helper->getFormModeWrite($form);
	}
Je ne vois pas du tout ça peut venir.

Merci d'avance pour votre aide!