Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2011, 20h37   #1
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Par défaut Question problème affichage erreur zfbook

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 :
Code :
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");
    }
 
 
}
la BDD :
Code :
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);
    } 
}
Les fonctions ne servent à rien mais c'était avant....

Es-ce que quelqu'un peux me donner une voix ?

Merci
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 21h20   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
cela me sort une erreur
quel erreur ?


pourquoi ne pas faire une action : add, au lieux de la mixer dans edit
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 21h23   #3
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
quel erreur ?


pourquoi ne pas faire une action : add, au lieux de la mixer dans edit
Bonjour,

Merci de ta réponse.
L'erreur :
Code :
1
2
3
An error occurred
 
Application error
Sinon oui en effet mais je voulais faire comme dans les sources du livre.
Eux ils mixent...

C'est pas mieux ?

Encore merci
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 21h32   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
non c'est mieux de séparer, ca sera plus claire, mais a quelle moment tu le fait ton : ajouterReservaton la ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 21h36   #5
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
non c'est mieux de séparer, ca sera plus claire, mais a quelle moment tu le fait ton : ajouterReservaton la ?
nul part c'étais dans ma première version en utilisant le tutoriel sur ce site.
Après j'ai lu le livre de zfbook et pensais que c'étais mieux?

Encore merci.
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 21h40   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
nul part c'étais dans ma première version en utilisant le tutoriel sur ce site.
Après j'ai lu le livre de zfbook et pensais que c'étais mieux?

Encore merci.
non dans le sens ou deja c'est plus compliquer parce qu'il faut faire une exception, et ensuite niveau role la aussi tu risque d'être coincer.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 22h17   #7
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
non dans le sens ou deja c'est plus compliquer parce qu'il faut faire une exception, et ensuite niveau role la aussi tu risque d'être coincer.
Bon en faisant avec une action add, plus de problèmes....

Merci je vais pouvoir continuer mon apprentissage.

Question annexe : sur un champs si je tape mettons :
le ' et " la

quand je valide, il em donne : le ' et
Comment je fait pour garder tous ???

A+
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 22h45   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
Bon en faisant avec une action add, plus de problèmes....

Merci je vais pouvoir continuer mon apprentissage.

Question annexe : sur un champs si je tape mettons :
le ' et " la

quand je valide, il em donne : le ' et
Comment je fait pour garder tous ???

A+
dans ta source HTML pareil ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 22h54   #9
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
dans ta source HTML pareil ?
Je voulais parler dans les champs input du formulaire.


Si j'enlève le
Code :
$this->view->setEscape('stripslashes');
du init, et que je met dans le listAction, cela me donne le \' et \" la


Encore merci.

A+
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h03   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
pas besoin de faire de stripslashes normalement, d'ailleur c'est bizarre qu'il t'en rajoute ils y sont dans la base ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h03   #11
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
pas besoin de faire de stripslashes normalement, d'ailleur c'est bizarre qu'il t'en rajoute ils y sont dans la base ?
en base de données, oui ils y sont...
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h22   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
en base de données, oui ils y sont...
aïe, c'est toi qui fait le addslashes ?
verfie les magic_quote sinon
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h24   #13
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
aïe, c'est toi qui fait le addslashes ?
verfie les magic_quote sinon
non je ne fais pas de addslashes....

magic_quote dans la config de PHP c'est ca ?
ou dans le ini de l'application ?

EDIT : dans le .htaccess : php_flag magic_quotes_gpc off

et la il met plus de \.
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h34   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
non je ne fais pas de addslashes....

magic_quote dans la config de PHP c'est ca ?
ou dans le ini de l'application ?

EDIT : dans le .htaccess : php_flag magic_quotes_gpc off

et la il met plus de \.
oaui par contre tu les a toujours en base ou les anciens
t'as quelle version de PHP ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h36   #15
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
oaui par contre tu les a toujours en base ou les anciens
t'as quelle version de PHP ?
C'est pas grave. c'est juste pour moi ce programme.



J'ai PHP 5.3.2 sous MAMP
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 23h58   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
C'est pas grave. c'est juste pour moi ce programme.



J'ai PHP 5.3.2 sous MAMP
c'est toi qui avait activé les magic_quote ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 00h05   #17
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
c'est toi qui avait activé les magic_quote ?
C'était activé par défaut de MAMP. Non ce n'est pas moi qui l'ai activé.
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 00h10   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Paul75 Voir le message
C'était activé par défaut de MAMP. Non ce n'est pas moi qui l'ai activé.
ah les salauds

tu sait que sous OSX t'as deja un serveur apache + php de configurer, restant biensur a installer mysql, mais c'est encore plus simple que MAMP, pour activer ton serveur c'est dans :
Préférences Système -> Partage -> (tu coches) Partage Web
et c'est tout ton serveur apache + php est lancer
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 09h19   #19
Nouveau Membre du Club
 
Paul Borel
Inscription : décembre 2004
Messages : 176
Détails du profil
Informations personnelles :
Nom : Paul Borel
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 176
Points : 34
Points : 34
Citation:
Envoyé par stealth35 Voir le message
ah les salauds

tu sait que sous OSX t'as deja un serveur apache + php de configurer, restant biensur a installer mysql, mais c'est encore plus simple que MAMP, pour activer ton serveur c'est dans :
Préférences Système -> Partage -> (tu coches) Partage Web
et c'est tout ton serveur apache + php est lancer
Salut,

Oui je l'utilise en serveur principal.
J'utilise MAMP par exemple pour les programmes qui ont besoin de FreeType car le PHP de OSX n'es pas installé....

Sinon j'aurai pas eu besoin de MAMP...

Encore Merci
Paul75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h09.


 
 
 
 
Partenaires

Hébergement Web