Bonsoir à tous, je suis encore débutant en zend bien que je progresse rapidement, je bloque sur une erreur. J'ai suivi le tutoriel de Developpez.com et malheureusement j'ai une erreur du domaine SQL. Malgré le message d'erreur, il y a une insertion qui se passe bien dans ma table mais seulement l'id s'auto-incrémente et mes variables titre et description ne rentrent pas dans ma table. Je suis bloqué depuis deux jours sur cette erreur, je viens demander votre aide car je ne sais plus ou donner de la tête. Je vous remercie d'avance pour votre aide précieuse.

Voici le message que j'ai

Message: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null

Stack trace:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#0 C:\wamp\www\skateparks\library\Zend\Db\Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#1 C:\wamp\www\skateparks\library\Zend\Db\Adapter\Abstract.php(480): Zend_Db_Statement->execute(Array)
#2 C:\wamp\www\skateparks\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `sk...', Array)
#3 C:\wamp\www\skateparks\library\Zend\Db\Adapter\Abstract.php(576): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `sk...', Array)
#4 C:\wamp\www\skateparks\library\Zend\Db\Table\Abstract.php(1076): Zend_Db_Adapter_Abstract->insert('skateparks', Array)
#5 C:\wamp\www\skateparks\application\models\DbTable\Skateparks.php(23): Zend_Db_Table_Abstract->insert(Array)
#6 C:\wamp\www\skateparks\application\controllers\SkateparksController.php(23): Application_Model_DbTable_Skateparks->ajouterSkateparks('juuyj', 'ujyujy')
#7 C:\wamp\www\skateparks\library\Zend\Controller\Action.php(516): SkateparksController->ajouterAction()
#8 C:\wamp\www\skateparks\library\Zend\Controller\Dispatcher\Standard.php(308): Zend_Controller_Action->dispatch('ajouterAction')
#9 C:\wamp\www\skateparks\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#10 C:\wamp\www\skateparks\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#11 C:\wamp\www\skateparks\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#12 C:\wamp\www\skateparks\public\index.php(26): Zend_Application->run()
#13 {main}
Request Parameters:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
array (
  'controller' => 'skateparks',
  'action' => 'ajouter',
  'module' => 'default',
  'id' => '0',
  'name' => 'juuyj',
  'description' => 'ujyujy',
  'envoyer' => 'Ajouter',
)
J'ai vérifié milles fois mon controller, form et vue mais je trouve pas

Voici mon controller

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
<?php
 
class SkateparksController extends Zend_Controller_Action
{
    public function indexAction()
    {
         $skateparks = new Application_Model_DbTable_Skateparks();
        $this->view->skateparks = $skateparks->fetchAll();
    }
 
    function ajouterAction()
    {
        $form = new Application_Form_Skateparks();
        $form->envoyer->setLabel('Ajouter');
        $this->view->form = $form;
 
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $name = $form->getValue('name');
                $description = $form->getValue('description');
                $skateparks = new Application_Model_DbTable_Skateparks();
                $skateparks->ajouterSkateparks($name, $description);
 
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        }
    }
 
}
Mon formulaire

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
<?php
 
class Application_Form_Skateparks extends Zend_Form
{
    public function init()
    {
        $this->setName('skateparks');
 
        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');
 
        $name = new Zend_Form_Element_Text('name');
        $name->setLabel('Ville')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim');
 
        $description = new Zend_Form_Element_Text('description');
        $description->setLabel('Description')
              ->setRequired(true)
              ->addFilter('StripTags')
              ->addFilter('StringTrim');
 
        $envoyer = new Zend_Form_Element_Submit('envoyer');
        $envoyer->setAttrib('id', 'boutonenvoyer');
 
        $this->addElements(array($id, $name, $description, $envoyer));
    }
}
Ma vue

<?php

class Application_Model_DbTable_Skateparks extends Zend_Db_Table_Abstract
{
protected $_name = 'skateparks';

public function voirSkateparks($id)
{
$id = (int)$id;
$row = $this->fetchRow('id = ' . $id);
if (!$row) {
throw new Exception("Impossible de trouver l'enregistrement $id");
}
return $row->toArray();
}

public function ajouterSkateparks($name, $description)
{
$data = array(
'name' => $name,
'description' => $description,
);
$this->insert($data);
}

public function modifierSkateparks($id, $name, $description)
{
$data = array(
'name' => $name,
'description' => $description,
);
$this->update($data, 'id = '. (int)$id);
}

public function supprimerSkateparks($id)
{
$this->delete('id =' . (int)$id);
}
}


Je sais pas trop ou ça bloque. je compte sur vous Bonne soirée.