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 formulaire SonataAdmin et A2lixTranslations


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 42
    Points
    42
    Par défaut Problème formulaire SonataAdmin et A2lixTranslations
    Bonjour,

    J'ai un problème avec l'utilisation de SonataAdmin utilisé avec A2lixTranslations.

    Je souhaite simplement avoir mon formulaire dans SonataAdmin avec un champ pouvant être traduit dans plusieurs langues (avec A2lixTranslation, c'est sensé de présenter avec plusieurs onglets il me semble)

    J'ai regardé pas mal d'exemples sur Internet et mis à jour mes bundles et toujours le même problème: ma page "créer" de SonataAdmin n'est pas affichée correctement.

    En premier niveau, j'ai le nom de ma classe (PeopleType).
    En deuxième niveau se trouve un champ "Translation" (avec les langages que j'ai défini dans config)
    En troisième niveau, j'ai mon champ "Name" (traduisible) affiché trois fois (car 3 langages définis).
    (voir la copie d'écran en dessous du message pour plus de détails)

    Lorsque je renseigne ce formulaire, j'obtiens le message d'erreur suivant:

    An exception occurred while executing 'INSERT INTO PeopleType (Name) VALUES (?)' with params [null]:
    SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'Name' cannot be null
    Je pense que ces deux problèmes sont liés. Il me semble qu'il y ait un niveau en trop et que donc les champs de saisie ne sont pas correctement nommés.
    Actuellement, le champ Name est "s51961ab9184d1[translations][en][name]" (le nom "translations" est en trop à mon avis).

    Ma page d'administration de PeopleType est assez épurée:
    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
    <?php
    namespace RevivalSoftware\EncyclopediaBundle\Admin;
     
    use Sonata\AdminBundle\Admin\Admin;
    use Sonata\AdminBundle\Form\FormMapper;
    use Sonata\AdminBundle\Datagrid\ListMapper;
     
    class PeopleTypeAdmin extends Admin
    {
        /**
         * @param \Sonata\AdminBundle\Datagrid\ListMapper $list list
         */
        protected function configureListFields(ListMapper $list)
        {
            $list
                ->addIdentifier('name', null, array('label' => 'Name'));
        }
     
        /**
         * @param FormMapper $formMapper formMapper
         */
        public function configureFormFields(FormMapper $formMapper)
        {
            $formMapper
                ->add('translations', 'a2lix_translations', array(
                    'by_reference' => false,
                    ));
        }
    }
    Je ne vois pas du tout d'où cela peut venir.
    Y-a-t-il une configuration particulière à faire pour pouvoir utiliser ces deux bundles ?

    Merci d'avance pour votre aide (je galère depuis plusieurs heures maintenant )

    Arnaud LEF97
    Images attachées Images attachées  

  2. #2
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 42
    Points
    42
    Par défaut
    Bon, finalement, c'était plus un problème de compréhension de ma part.
    Je n'avais pas mis le nom du champ dans le formulaire (seules les traductions étaient affichées).
    C'était donc normal qu'il me dise que le champ ne devait pas être à NULL.

    Ci-dessous le nouveau code (qui fonctionne donc).

    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
    <?php
    namespace RevivalSoftware\EncyclopediaBundle\Admin;
     
    use Sonata\AdminBundle\Admin\Admin;
    use Sonata\AdminBundle\Form\FormMapper;
    use Sonata\AdminBundle\Datagrid\ListMapper;
     
    class PeopleTypeAdmin extends Admin
    {
        /**
         * @param \Sonata\AdminBundle\Datagrid\ListMapper $list list
         */
        protected function configureListFields(ListMapper $list)
        {
            $list
                ->addIdentifier('name', null, array('label' => 'Name'));
        }
     
        /**
         * @param FormMapper $formMapper formMapper
         */
        public function configureFormFields(FormMapper $formMapper)
        {
            $formMapper
                ->add('name')
                ->add('translations', 'a2lix_translations', array('by_reference' => false));
        }
    }
    J'ai cependant toujours un problème avec l'affichage (voir pj)
    Si quelqu'un a déjà rencontré ce problème ou a une solution pour que cela apparaisse correctement.

    Merci d'avance
    Arnaud LEF97
    Images attachées Images attachées  

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 62
    Points : 31
    Points
    31
    Par défaut
    Salut,

    pour ma part quand j'ajoute ca dans mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->add('translations', 'a2lix_translations', array('by_reference' => false));
    j'ai cette erreur :
    Fatal error: Call to a member function getMetadataFactory() on a non-object in C:\wamp\www\sonata-sandbox\vendor\a2lix\translation-form-bundle\A2lix\TranslationFormBundle\TranslationForm\TranslationForm.php on line 39

    J'arrive pas a m'en sortir quelqu'un peut m'aider ? J'utilise aussi Sonata Admin et A2lixTranslation merci !

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2008, 18h49
  2. [PEAR][HTML_QuickForm] Formulaire mail
    Par keiser1080 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/03/2006, 00h36
  3. Réponses: 2
    Dernier message: 19/12/2005, 12h23
  4. problème formulaire tabulaire
    Par jax69 dans le forum Access
    Réponses: 2
    Dernier message: 05/09/2005, 11h28
  5. Problème Formulaire + popup + page PHP
    Par nesbla dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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