Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 18/04/2011, 13h25   #1
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Par défaut Préremplir un champ lors de l'édition d'un form déjà existant

Bonjour,

J'aimerais que lorsque l'on édite, une vue de mon portail les champs dates non définie soit mis à la date du jour afin de faciliter la saisie.

Je donne un peu plus de détail :

Mon formulaire comprends des balises select permettant de renseigner une plage calendaire.
Lorsque l'on édite ce formulaire pour la première fois les dates ne sont pas définies dans la base donc les champs sont nuls.

En clair est-il possible de faire un truc du genre lors de l'édition ?

Code :
1
2
3
if (!getDate){
 setDate(now());
}
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 13h58   #2
Candidat au titre de Membre du Club
 
Étudiant
Inscription : juillet 2008
Messages : 39
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2008
Messages : 39
Points : 13
Points : 13
si tu veux il y a la fonction $this->setDefault().

http://www.symfony-project.org/forms...-Form-Creation
orzhov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h30   #3
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Merci je me suis débrouillé autrement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public function save(Doctrine_Connection $conn = null){
  if ($this->isNew()){
    $tempCreated = $this->getCreatedAt();
    if(empty($tempCreated)){
      $this->setCreatedAt(date('Y-m-d H:i:s'));
      $timeStampHappel = strtotime ($this->getHappel());
      $this->setHdeb($this->arrondiAuQuardHeure($timeStampHappel));
      $this->setHfin($this->arrondiAuQuardHeure($timeStampHappel));
    }
  }
  $this->setTpasse($this->caculTempsPasse($this->getHdeb(), $this->getHfin()));
  $this->setUpdatedAt(date('Y-m-d H:i:s'));
  return parent::save($conn);
}
 
public function arrondiAuQuardHeure($timeStamp) { //Retourne l'heure arrondie au quart d'heure près inférieur.
  echo $timeStamp;
  $now = getdate($timeStamp);
  $minutes = $now['minutes'] - $now['minutes']%15;
  $newTime = $now['year'].'-'.$now['mon'].'-'.$now['mday'].' '.$now['hours'].':'.$minutes;
  return  $newTime;
}
De cette façon le champ est initialisé lors de la création de l'entrée en base.

J'avais l'impression que faire cette opération depuis le configure n'était pas "propre" mais je me trompe surement.
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h34   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Si tu veux une date de création et une date d'édition, utilise le behavior doctrine timestampable qui fait tout, tout seul.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 16h54   #5
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Citation:
Envoyé par Michel Rotta Voir le message
Si tu veux une date de création et une date d'édition, utilise le behavior doctrine timestampable qui fait tout, tout seul.
Non ce n'est pas le but, d'ailleurs je l'utilise déjà "setCreatedAt()".

Mon but était sur d'autre champs TimeStamp, dans l'exemple Hdeb et Hfin qui sont deux périodes definie par l'utilisateur du débute forcément après la date d'appel getHappel.
La date de création de l'entrée ne correspond pas forcément à l'heure d'appel.
Merci quand même.

Sinon au niveau déclaration "d'interactivité" peut-on vraiment le faire au niveau du configure ?
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 09h53   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je ne vois pas trop ce que tu veux dire par "le faire dans configure".

A priori sur quelque chose qui dépend du modèle (vrai pour toutes les méthodes de création possible), la méthode save du modèle est un bon endroit (c'est là que j'aurais mis ce code).

Mais qu'entends tu par "au niveau du configure " ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h04   #7
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Citation:
Envoyé par Michel Rotta Voir le message
Je ne vois pas trop ce que tu veux dire par "le faire dans configure".

La réponse de orzhov indique le setDefault avec un exemple et dans l'exemple il utilise cette fonction dans la function configure de l'extends sfForm.

Je trouvais la méthode de définir mon besoin de l'heure "actuelle" depuis la function configure n'était pas propre.
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h17   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
La méthode proposée par orzhov correspond bien à la demande du titre du message.

Mais ton titre ne correspond pas à ta demande. Il a donc parfaitement raison de proposer cette solution qui est valide si l'en s'en tiens au début de la demande. Maintenant, vu qu'elle a évoluée, la réponse se doit de s'adapter à la réalité de la demande. La méthode save() me semble un bon endroit pour le faire.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h28   #9
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Merci de ton aide.

Je me permet tout de même de stipuler que les titres sont soumis a l'interprétation individuelle .
Pour moi j'étais dans le contexte et j'y suis resté car je parle d'édition et non de création.
Enfin bref ! Le principal est que la solution est été trouvée.
Encore merci.
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont 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 05h01.


 
 
 
 
Partenaires

Hébergement Web