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 13/05/2011, 15h20   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
Par défaut champs en lecture seule formulaire (Edit)

Bonjour,
Je voudrais savoir si c'est possible sur un formulaire Edit de symfony de mettre certains champs en lecture seule (pas de possibilité de les modifier)?
je sais que :
Code :
1
2
 
unset($this['nom'])..
permet de cacher complétement le champs, y aurait-il une méthode qui permet de l'afficher sans le modifer?

Merci!!
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h37   #2
Membre habitué
 
Avatar de Nico_F
 
Homme Nicolas
Développeur Web
Inscription : avril 2011
Messages : 95
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : avril 2011
Messages : 95
Points : 142
Points : 142
http://www.developpez.net/forums/d90...-cle-primaire/

Jette un œil aux dernières réponses, j'ai le sentiment que ça peut-être une bonne piste.
Nico_F est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h28   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
Merci pour votre réponse.
j'ai essayé de rajouter dans classe Form comme c'est indiqué dans le lien:
Code :
1
2
 
$this->widgetSchema['nom'] = new sfWidgetFormInputText(array(), array('disabled' => 'disabled'));
ça fonctionne mais quand je fais le save ça me regénére le formulaire avec des erreurs pour les champs obligatoires et "Unexpected extra form field named "price"..en plus tous les champs du formulaire que j'avais mis en unset sont vides..
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h01   #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
Regardes ici.
__________________
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 16/05/2011, 09h14   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
Merci Michel,
j'ai essayé ta réponse, mais dans mon formulaire j'ai un cas particulier:
je fais un embedForm dans la classe du formulaire ("ArticleForm.php")

Code :
1
2
 
 $this->embedForm('livraison', new ArticleLivreForm());
si j'applique ton code, càd construire le formulaire à la main dans le template, comment je pourrais intégrer l'embedForm à ce niveau?

En plus, comment je dois gérer les validateurs du formulaire pour éviter d'avoir des erreurs au moment de la sauvegarde, en effet si je supprime les validateurs j'ai des erreurs de Widget non existant ?
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 13h13   #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
Les champs en lecture seul ne doivent (surtout) pas avoir de validateurs.

Les embed form peuvent être géré à la main, il est possible de récupérer et de faire un foreach sur les form imbriqué. Je n'ai pas de code sous la main, mais j'ai déjà vu. Regarde du coté de google, si tu ne trouves rien, je plongerais à ta suite.
__________________
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 16/05/2011, 15h47   #7
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 311
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 311
Points : 33
Points : 33
En fait, quand je veux enregistrer le formulaire, j'ai un message d'erreur
Code :
1
2
 
Widget "mon_champs" does not exist.
comment je fais pour que symfony n'aille pas chercher de widget pour chaque champs du formulaire?

sinon j'ai toujours pas réussi à intégrer l'embed form dans le template
flora806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 18h25   #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
J'ai du mal à comprendre le problème de widget lors de l'enregistrement. En principe c'est les validateurs qui jouent ici.

Il faudrait plus d'informations sur ton code.

Je suis overbocké actuellement fait une recherche avec "symfony form embed template render" tu devrais trouver.
__________________
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/05/2011, 13h20   #9
Membre du Club
 
Homme
Analyse système
Inscription : mars 2011
Messages : 406
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Analyse système

Informations forums :
Inscription : mars 2011
Messages : 406
Points : 67
Points : 67
bonjour il faut que tu fait 2 condition une sur l'action ajouter et l'autre pour modifier et delete.
voila un exemple : j'ai 2 module :client et KK et dans client je fait imbriqué le formulaire de Kk:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class ClientForm extends BaseClientForm
{
  public function configure(){
 
 
         //condition sur le cas de create car isnew retourne create
         if($this->getObject()->isNew()) {
         $this->embedForm('gg', new KkForm());
         }
 
         //le signe  ! donc soit update ou delete
         if(!$this->getObject()->isNew()) {
         $a = new KkForm();
         foreach ($this->object['Kk'] as $index=>$Kk) {
         $this->embedForm('gg',new KkForm($Kk)); }
         $a->embedForm('gg',$a);}
 
}
}
benhsaien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h17.


 
 
 
 
Partenaires

Hébergement Web