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:
Request Parameters:
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}
J'ai vérifié milles fois mon controller, form et vue mais je trouve pas
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', )
Voici mon controller
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
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); } } } }
Ma 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 <?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)); } }
<?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.
Partager