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 :

Problème d'intégration de formulaire imbriqué [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 125
    Points : 55
    Points
    55
    Par défaut Problème d'intégration de formulaire imbriqué
    J'ai 2 entités
    ItemSelector : qui contient les informations générales et Item qui contient une liste d'item reliés à ItemSelector
    je voudrait afficher donc, classiquement, afficher un formulaire de ItemSelectorType avec les éléments de ItemType

    Mais j'ai ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Neither the property "itemcode" nor one of the methods "getItemcode()", "itemcode()", "isItemcode()", "hasItemcode()", "__get()" exist and have public access in class "NWA\ItemSelectorBundle\Entity\ItemSelector".
    Quel peut être le problème, sachant que si je ne m'abuse, getItemcode() existe et a un accès public. (ou alors je ne comprends pas l'anglais )

    Merci d'avance

    Voici mes entités :
    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
    class ItemSelector
    {
        /**
         * @var Items[]
         *
         * @ORM\OneToMany(targetEntity="NWA\ItemSelectorBundle\Entity\Item", mappedBy="itemselector", cascade={"all"})
         */
        protected $items;
     
        /**
         * Class constructor
         */
        public function __construct()
        {
            $this->items = new ArrayCollection();
        }
     
        /**
         * Add item
         *
         * @param \NWA\ItemSelectorBundle\Entity\Item $item
         *
         * @return ItemSelector
         */
        public function addItem(\NWA\ItemSelectorBundle\Entity\Item $item)
        {
            $this->items[] = $item;
            //$item->setItemselector($this);
            return $this;
        }
     
        /**
         * Remove item
         *
         * @param \NWA\ItemSelectorBundle\Entity\Item $item
         */
        public function removeItem(\NWA\ItemSelectorBundle\Entity\Item $item)
        {
            $this->items->removeElement($item);
        }
     
        /**
         * Get items
         *
         * @return \Doctrine\Common\Collections\Collection
         */
        public function getItems()
        {
            return $this->items;
        }
    }
    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
    class Item
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @var string
         *
         * @ORM\Column(name="itemcode", type="string", length=255)
         */
        protected $itemcode;
     
     
        /**
         * @var ItemSelector
         *
         * @ORM\ManyToOne(targetEntity="NWA\ItemSelectorBundle\Entity\ItemSelector", inversedBy="items")
         * @ORM\JoinColumn(name="itemselector_id", referencedColumnName="id")
         */
        protected $itemselector;
     
        /**
         * Get id
         *
         * @return integer
         */
        public function getId()
        {
            return $this->id;
        }
     
        /**
         * Set itemcode
         *
         * @param string $itemcode
         *
         * @return Item
         */
        public function setItemcode($itemcode)
        {
            $this->itemcode = $itemcode;
     
            return $this;
        }
     
        /**
         * Get itemcode
         *
         * @return string
         */
        public function getItemcode()
        {
            return $this->itemcode;
        }
     
        /**
         * Set itemselector
         *
         * @param \NWA\ItemSelectorBundle\Entity\ItemSelector $itemselector
         *
         * @return Item
         */
        public function setItemselector(\NWA\ItemSelectorBundle\Entity\ItemSelector $itemselector = null)
        {
            $this->itemselector = $itemselector;
     
            return $this;
        }
     
        /**
         * Get itemselector
         *
         * @return \NWA\ItemSelectorBundle\Entity\ItemSelector
         */
        public function getItemselector()
        {
            return $this->itemselector;
        }
    }
    les constructeurs de formulaire :
    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
    class ItemSelectorType extends AbstractType
    {
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
     
                ->add(
                    'itemcode', 'collection', array(
                        'type'          => new ItemType(),
                        'prototype'     => true,
                        'allow_add'     => true,
                        'allow_delete'  => true
                    )
                );
        }
     
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'NWA\ItemSelectorBundle\Entity\ItemSelector',
                'translation_domain' => 'resource'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'nwa_itemselector';
        }
    }

    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
    class ItemType extends AbstractType
    {
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add(
                    'itemcode', 'text', array(
                        'label' => 'Code'
                    )
                );
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'NWA\ItemSelectorBundle\Entity\Item'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'nwa_itemselectorbundle_item';
        }
    }
    et mon appel dans le 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
        public function chooseAction(Request $request, ItemSelector $itemSelector)
        {
            $form = $this->get('form.factory')
                ->create(new ItemSelectorType(), $itemSelector);
     
            $form->handleRequest($request);
            if ($form->isValid()) {
     
            }
     
            return array(
                '_resource' => $itemSelector,
                'form'      => $form->createView(),
            );
        }

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Oups. j'avais fait une faute : j'avais mis au lieu de dans ma collection

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Probléme avec formulaire imbriqué
    Par billy18001 dans le forum Symfony
    Réponses: 5
    Dernier message: 23/08/2014, 01h10
  2. [1.x] problème formulaire imbriqué
    Par Ontolingua dans le forum Symfony
    Réponses: 7
    Dernier message: 01/09/2010, 10h38
  3. [1.x] Problème d'enregistrement de relation d'un formulaire imbriqué
    Par LesLemmings dans le forum Symfony
    Réponses: 3
    Dernier message: 06/07/2010, 14h17
  4. [MySQL] Problème intégration du formulaire paybox
    Par g_escande81 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 01/03/2010, 10h50
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 11h06

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