Bonjour,

Voila je rencontre un petit problème avec mon code.

l'entity Product :

<?php

    namespace EcommerceBundle\Entity;

    use Doctrine\Common\Collections\ArrayCollection;
    use Doctrine\ORM\Mapping as ORM;
    use Gedmo\Mapping\Annotation as Gedmo;
    use Symfony\Component\Validator\Constraints as Assert;
    use UserBundle\Entity\User;

    /**
     * Product
     *
     * @ORM\Table(name="ecom_product")
     * @ORM\Entity(repositoryClass="EcommerceBundle\Repository\ProductRepository")
     */
    class Product
    {
        /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
        =============
        /**
         * @ORM\ManyToOne(
         *     targetEntity="EcommerceBundle\Entity\Classification",
         *     inversedBy="product"
         * )
         * @ORM\JoinColumn(nullable=false)
         */
        private $classification;
                public function __construct()
        {
            //        $this->date = new \datetime();
            // Rappelez-vous, on a un attribut qui doit contenir un ArrayCollection, on doit l'initialiser dans le constructeur
            $this->tax            = new ArrayCollection();
            $this->classification = new ArrayCollection();
            $this->vouchers       = new ArrayCollection();

        }
                /**
         * @return mixed
         */
        public function getClassification()
        {
            return $this->classification;
        }

        /**
         * @param \EcommerceBundle\Entity\Classification $classification
         */
        public function setClassification( Classification $classification )
        {
            $this->classification = $classification;
        }
        =============

le formType Product :

<?php

namespace EcommerceBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ProductType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $ElFinderFolder = $options['ElFinderFolder'];
        $builder
            ->add('name')
            ->add('subtitle')
            ->add('ref')
            ->add('price')
            ->add('quantity')
            ->add('teaser')
            ->add('description','ckeditor',
                  array (
                       'label'             => 'Contenu',
                       'config' => array(
                           'language'    => 'fr'
                       ),
                       'attr' => array(
                           'ng-model'=>'articleTxt',
                       )
                   )
            )
            ->add('publish')
            ->add ( '_local' , ChoiceType::class , array (
                'choices'     => array(
                    'En' => 'en',
                    'Fr' => 'fr',
                    'Ru' => 'ru',
                ) ,
                'choices_as_values' => true,
                'preferred_choices' => array ('fr') ,
                //                'empty_value' => 'Choisissez une option' ,
            ) )
            ->add('slug')
            ->add('img', 'elfinder' , array (
                'instance' => $ElFinderFolder ,
                'enable'   => true ,
                'attr'     => [
                    'class' => 'form-control' ,
                    'ng-model'=>'img',
                ] ,
            ) )
            ->add('icon')
            ->add('tax')
            ->add('classification')

        ;
    }

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'EcommerceBundle\Entity\Product',
            'ElFinderFolder'     => 'form',
        ));
    }
}

voici le problème : en local test dev sur server Xampp PHP 5.6.15, Symfony 2.8.3 sur Windows 10, j'ai le champ "classification" qui est en type selector avec un choix de sélection et en prod PHP 5.6.17 le champ vide sans possibilité de sélection (classification entity dans les deux cas a des enregistrements) .

Je n'ai aucune erreur dans les "jointures" le test doctrine:schema:validate ne retourne :
[Mapping] OK - The mapping files are correct.
[Database] OK - The database schema is in sync with the mapping files.

Dans la base Msql serveur sur la prod, le champ "classification" dans la table est bien reconnu en jointure avec entity classification.
Je ne comprends pas pourquoi cela ne fonctionne pas!

Merci de votre aide.

en local :
http://imgur.com/X4J3wln
en prod :
http://imgur.com/TvRXrxk

3 réponses


zorg-27
Auteur
Réponse acceptée

donc apres avoir refais un test pour la route [..] la version prod c'est remis à fonctionner !!!! de la magie .....

Salut,

As-tu essayer de vider le cache ?

zorg-27
Auteur

ben oui (tout effacé le site en root et re-installer) , de plus j'ai tout ré-écrit la class "classification" qui était au départ "category" !!