Bonjour,
Voila, j'ai plusieurs entityManager définies comme suit :
Comme vous le voyez, la classe ImageBundle sert dans plusieurs base de données (boutique et site)
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 doctrine: dbal: default_connection: default connections: default: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 forum: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "web_forum" user: "%database_user%" password: "%database_password%" charset: UTF8 boutique: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "web_boutique" user: "%database_user%" password: "%database_password%" charset: UTF8 # if using pdo_sqlite as your database driver, add the path in parameters.yml # e.g. database_path: "%kernel.root_dir%/data/data.db3" # path: "%database_path%" orm: default_entity_manager: default auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: connection: default mappings: ArticleBundle: ~ CandidatureBundle: ~ ImageBundle: ~ UserBundle: ~ boutique: connection: boutique mappings: BoutiqueBundle: ~ ImageBundle: ~ forum: connection: forum
Avec SonataAdminBundle, j'ai voulu configuré la gestion de l'entité "Catégorie" de mon bundle BoutiqueBundle :
Le problème, c'est qu'a l'enregistrement, il me sort une erreur :
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 <?php namespace MinecraftProject\BoutiqueBundle\Admin; // ...... // Fields to be shown on create/edit forms protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('nom', 'text') ->add('description', 'textarea') ->add('image', new ImageType(), array('label' => "URL de l'image", 'required' => false)) ->add('isVisible', null, array('label' => 'Visibilité sur la boutique', 'required' => false)) ; }
Failed to create object: MinecraftProject\BoutiqueBundle\Entity\Categorie
Je me suis renseigné, et d'après ce que j'ai pu lire a divers endroits, cela viendrais du fait que ImageBundle se trouve sur plusieurs EntityManager, donc ça ferait bugué l'insertion.
Pour y remédié, j'ai voulu ficé l'entityManager dans mon service sonata en suivant les indications ici : https://github.com/sonata-project/So...ndle/issues/12
Mon service.yml :
Mais le probleme, c'est que dans Doctrine_ORM.xml, je ne voit pas ou changer le nom de l'entity manager afin de mettre celui de la boutique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 services: sonata.admin.boutique.categorie: class: MinecraftProject\BoutiqueBundle\Admin\CategorieAdmin tags: - { name: sonata.admin, manager_type: orm, group: "Boutique", label: "Categories" } arguments: - ~ - MinecraftProject\BoutiqueBundle\Entity\Categorie - ~ - '@service_container' calls: - [ setTranslationDomain, [BoutiqueBundle]] - [ setModelManager, [@sonata.admin.boutique.entity_manager]]
Une ou plusieurs idées, conseil pour me faire avancé ?
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<?xml version="1.0" encoding="UTF-8" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> <services> <service id="sonata.admin.boutique.entity_manager" factory-service="doctrine" factory-method="getEntityManager" class="Doctrine\ORM\EntityManager" public="false"> <argument>%sonata_doctrine_orm_admin.entity_manager%</argument> </service> <service id="sonata.admin.manager.orm" class="Sonata\DoctrineORMAdminBundle\Model\ModelManager"> <argument type="service" id="doctrine" /> </service> <!-- FormBuilder --> <service id="sonata.admin.builder.orm_form" class="Sonata\DoctrineORMAdminBundle\Builder\FormContractor"> <argument type="service" id="form.factory" /> </service> <!-- ListBuilder --> <service id="sonata.admin.builder.orm_list" class="Sonata\DoctrineORMAdminBundle\Builder\ListBuilder" > <argument type="service" id="sonata.admin.guesser.orm_list_chain" /> <argument /> </service> <service id="sonata.admin.guesser.orm_list" class="Sonata\DoctrineORMAdminBundle\Guesser\TypeGuesser"> <tag name="sonata.admin.guesser.orm_list" /> </service> <service id="sonata.admin.guesser.orm_list_chain" class="Sonata\AdminBundle\Guesser\TypeGuesserChain"> <argument /> </service> <!-- ShowBuilder --> <service id="sonata.admin.builder.orm_show" class="Sonata\DoctrineORMAdminBundle\Builder\ShowBuilder" > <argument type="service" id="sonata.admin.guesser.orm_show_chain" /> <argument /> </service> <service id="sonata.admin.guesser.orm_show" class="Sonata\DoctrineORMAdminBundle\Guesser\TypeGuesser"> <tag name="sonata.admin.guesser.orm_show" /> </service> <service id="sonata.admin.guesser.orm_show_chain" class="Sonata\AdminBundle\Guesser\TypeGuesserChain"> <argument /> </service> <!-- DatagridBuilder guesser --> <service id="sonata.admin.builder.orm_datagrid" class="Sonata\DoctrineORMAdminBundle\Builder\DatagridBuilder"> <argument type="service" id="form.factory" /> <argument type="service" id="sonata.admin.builder.filter.factory" /> <argument type="service" id="sonata.admin.guesser.orm_datagrid_chain" /> <argument>%form.type_extension.csrf.enabled%</argument> </service> <service id="sonata.admin.guesser.orm_datagrid" class="Sonata\DoctrineORMAdminBundle\Guesser\FilterTypeGuesser"> <tag name="sonata.admin.guesser.orm_datagrid" /> </service> <service id="sonata.admin.guesser.orm_datagrid_chain" class="Sonata\AdminBundle\Guesser\TypeGuesserChain"> <argument /> </service> </services> </container>
Merci d'avance
Partager