IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Valeur par défault, ne pas choisir le champ du formulaire


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut Valeur par défault, ne pas choisir le champ du formulaire
    Bonjour

    J'ai un soucis avec un champ 'idApp' de mon formulaire réutilisable : je fais appelle a lui qsuand je veux creer un media pour une application bien définie (application en cour) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('title')
                ->add('type')
                ->add('file')
                ->add('comment')
                ->add('partie')
                ->add('idApp', 'entity', array(
                        'class' => 'AppMediaBundle:Application',
                        'property' => 'title'))
            ;  
        }
    Lorseque je l'appelle pour créer des nouvelles donnés ('title', 'type' ....) il me demande de choisir a partir d'une liste déroulante l'application 'idApp', or que il ne met pas l'application courante !!

    Normalement le formulaire doit savoir de quelle application ce dont j'utilise pour lui créer médias.

    Quelqu'un paut m'aider merci.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    nulle part tu lui dis quelle application c'est

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Y a aucun moyen ? la liste est longue bcp de noms d'application

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Y a aucun moyen ? la liste est longue bcp de noms d'application
    faut bien la fournis quelque part, comment tu veux sélectionner la bonne application si tu le lui dis pas c'est laquelle

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    dans l'url j'ai bien l'id de l'application ca se peut ???

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    deux solution
    soit tu refais un get en garder id dans la page de soumission du formulaire
    soit tu fais un champs hidden en mettant la valeur par default
    http://symfony.com/doc/current/book/...ithout-a-class

    ps : attention au csrf

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    je bloque je n'ai sais pas quoi mettre dans : xxxxx la valeur par default : la variable $idPoi ou getIdPoi() ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $builder->add('idPoi', 'hidden', array(
        'data' => 'xxxxx',
    ));

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    lis bien l'exemple

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    je l'ai lu mais moi je veux passer un index 'id' or que normalement cette méthode fait passer un objet !! Aidez moi svp

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    et $defaultData ?

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Mon formulaire est de genre générer par le CRUD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function buildForm(FormBuilder $builder, array $options)
        {.....
         }
    Je ne sais quoi faire !!
    Pour le lien vers la vue qui affiche le formulaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="{{ path('media_new', { 'id': entity.id })}}">
    </a>
    comment je peux mettre cette valeur {{ entity.id }} dans le tableau :


  12. #12
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut Caché un champ et lui passer une valeur de l'id
    Bonjour,
    J'ai un soucis depuis hier :
    J'ai un formulaire réutilisable je l'appelle depuis une vue pour créer des medias pour une application bien choisit au début :


    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
    public function buildForm(FormBuilder $builder, array $options)
        {
            $builder
                ->add('title')
                ->add('type')
                ->add('file')
                ->add('comment')
                ->add('partie')
                ->add('idApp', 'entity', array(
                        'class' => 'AppBundle:Entity',
                        'property' => 'title',
                        'label'=> 'Application :'))
     
            ;
        }

    Lorsque le form s'affiche il me demande de choisir l'application 'idApp'.
    Je veux maintenant cacher le champ 'idApp' et lui passer l'id de la bonne application.

    J'ai trouvé ceci : http://symfony.com/doc/current/refer...es/hidden.html


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $builder->add('idApp', 'hidden', array(
        'data' => 'xxxx',
    ));

    Justement je ne sais quoi faire pour que le champ 'idApp' sache que quelle application il s’agit.
    Sachant que avant d'appeler le form j'ai choisis mon application.

    Quelqu'un peut m'aider.

    Merci infiniment.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Je passe un paramètres $idApp depuis mon newAction ($idApp) dans mon controlleur qui a pour valeur id de l'application, mais pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $builder->add('idApp', 'hidden', array(
        'data' => $idApp,
    ));
    Notice: Undefined variable: entity in (dans mon formulaire) !!

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Le code de newAction dans mon controlleur :
    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
    public function newAction($idPoi)
        {
     
            $em = $this->getDoctrine()->getEntityManager();
            $par = $em->getRepository('AppSuisseBundle:SuissePoiMedia')->find($idPoi);
     
            $entity = Media();
            $entity->getIdApp($par);
            $form   = $this->createForm(new MediaType(), $entity);
            $form->get('idApp')->getData($idApp);
     
            return $this->render('AppMyBundle:Media:new.html.twig', array(
                'entity' => $entity,
                'form'   => $form->createView(),
                'idApp' => $idApp,
     
            ));
        }
    Dans mon form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $builder->add('idApp', 'hidden', array(
        'data' => $idApp,
    ));
    Je peux créer un nouveau media pour une application mais dans la bdd "idApp" prend une valeur Null

  15. #15
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Tu t'es pas trompé par hasard ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->getIdApp($par);
    Ca devrait pas être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->setIdApp($par);
    ?

  16. #16
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Merci d'avoir répondu; en effet fallait mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->setIdApp($par);
    j'ai changé car ça m'affiche une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Catchable Fatal Error: Argument 1 passed to App\SuisseBundle\Entity\PoiMedia::setIdApp() must be an instance of ...\Entity\Poi, null given, called in .../Controller/MediaController.php on line 65 and defined in .../Entity/PoiMedia.php line 198


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function newAction($idPoi)
        {
     
            $em = $this->getDoctrine()->getEntityManager();
            $par = $em->getRepository('AppMyBundle:PoiMedia')->find($idApp);
     
            $entity = new PoiMedia();
            $entity->setIdApp($par);
            $form   = $this->createForm(new PoiMediaType($idApp), $entity);

  17. #17
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    $idApp n'est pas défini dans ta méthode, donc ton find ne te retourne aucun résultat, d'où le null

  18. #18
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    si si j'ai bien le $idApp :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function newAction($idPoi)
        {
     
            $em = $this->getDoctrine()->getEntityManager();
            $media = $em->getRepository('AppSuisseBundle:SuissePoiMedia')->find($idPoi);
     
            $entity = new SuissePoiMedia();
            $entity->$this->setIdPoi(new SuissePoiMedia ($idPoi));
            $form   = $this->createForm(new SuissePoiMediaType($idPoi), $entity);
         }
    J'ai une autre erreur : ca concerne la fonction __toString() je suppose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Catchable Fatal Error: Object of class ... PoiMediaController could not be converted to string in .../Controller/SuissePoiMediaController.php line 67
    Merci

  19. #19
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    On peut voir la ligne 67 ?

  20. #20
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->$this->setIdApp(new PoiMedia ($idApp));
    Lorsque c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->setIdApp(new $idApp);
    Fatal error: Class '215' not found in ..../MediaController.php on line 67

    215 c'est mon idApp

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/08/2011, 13h22
  2. Trouver une valeur qui n'est pas dans un champ
    Par eric41 dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/05/2006, 16h48
  3. afficher une valeur par défault dans la combobox
    Par shadow31 dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2006, 17h25
  4. Une valeur ne s'affiche pas dans un champ texte
    Par KibitO dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2005, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo