Bonjour,
Je débute en ZF.
J'ai voulu démarrer et refaire pas à pas l'application zfbook.
J'ai d'abord voulu le faire simplement sans aucunes vérification de droits, caches sessions.
Juste ajouter/modifier une réservation.
Mais j'arrive à comprendre comment modifier (c'est ok). Mais lors de l'ajout d'une reservation, cela me sort une erreur. Je ne comprends pas d'où sort le problème.
Le contrôleur :
la BDD :
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 <?php class ReservationController extends Zend_Controller_Action { private $_reservationTable; public function init() { $this->view->titre = "Réservation des salles"; $this->view->setEscape('stripslashes'); $this->_reservationTable = new Application_Model_DbTable_Reservation(); $this->_helper->viewRenderer->setNoRender(false); } public function indexAction() { $this->view->titre = "Application exemple du livre Zend Framework"; } public function listAction() { $this->view->titre = "Liste des réservations"; $roomListTable = new Application_Model_DbTable_Room(); $rooms = $roomListTable->fetchAll()->toArray(); $Troom = array(); foreach ($rooms as $room) { $Troom[$room['id']] = $room["name"]; } $this->view->rooms = $Troom; $userListTable = new Application_Model_DbTable_User(); $users = $userListTable->fetchAll()->toArray(); $Tuser = array(); foreach ($users as $user) { $Tuser[$user['id']] = $user["firstname"]." ".$user["lastname"]; } $this->view->users = $Tuser; $reservations = $this->_reservationTable->fetchAll()->toArray(); // Gestion de la pagination $paginator = Zend_Paginator::factory($reservations); $paginator->setItemCountPerPage(5); $paginator->setCurrentPageNumber($this->getRequest()->getParam('page')); $this->view->reservations = $paginator; } public function editAction() { // Récupération des paramètres et de la réservation à éditer si nécessaire. $params = $this->getRequest()->getParams(); $isUpdate = isset($params['r']); if ($isUpdate) { $params['r'] = (int)$params['r']; $this->view->titre = "Editer une réservation existante"; $reservation = $this->_reservationTable->find((int)$params['r'])->current(); } else { $this->view->titre = "Ajouter une réservation"; // Création d'une réservation vide s'il s'agit d'un ajout $reservation = $this->_reservationTable->createRow(); } // Création du formulaire et déclaration des paramètres généraux $form = new Application_Form_AjoutRes(); $form->setAction($this->view->link('reservation' , 'edit', null, '', 'default', !$isUpdate)) ->setMethod('post') ->setDefaults($reservation->toArray()); // Création du formulaire et ajout/suppression if ($this->getRequest()->isPost() && $form->isValid($_POST)) { $values = $form->getValues(); $values['creator'] = 1; $reservation->setFromArray(array_intersect_key($values, $reservation->toArray())); $reservation->save(); // Redirection vers la liste des réservations $this->_helper->redirector("list"); } // Assignation du formulaire pour affichage $this->view->form = $form; } public function deleteAction() { // Récupération de l'identifiant de la // réservation à supprimer $params = $this->getRequest()->getParams(); $idReservation = (int)$params['r']; $this->_reservationTable->delete("id=$idReservation"); // Redirection sur la page précédente $this->_helper->redirector("list"); } }
Les fonctions ne servent à rien mais c'était avant....
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 <?php class Application_Model_DbTable_Reservation extends Zend_Db_Table_Abstract { /** * Nom de la table (vue) * * @var string */ protected $_name = 'reservation'; protected $_primary = 'id'; public function obtenirReservation($id) { $id = (int)$id; $row = $this->fetchRow('id = '.$id); if(!$row) { throw new Exception("Impossible de trouver l'enregistrement"); } return $row->toArray(); } public function ajouterReservaton($room, $usage, $datebegin, $dateend, $creator) { $data = array( "id_room" => $room, "usage" => $usage, "date_begin" => $datebegin, "date_end" => $dateend, "creator" => $creator ); $this->insert($data); } }
Es-ce que quelqu'un peux me donner une voix ?
Merci
Partager