Pārlūkot izejas kodu

Use the doctrine factory method to retrieve the entity manager.

Thomas Rabaix 13 gadi atpakaļ
vecāks
revīzija
fe1e93f848

+ 1 - 0
DependencyInjection/Configuration.php

@@ -37,6 +37,7 @@ class Configuration implements ConfigurationInterface
 
 
         $rootNode
         $rootNode
             ->children()
             ->children()
+                ->scalarNode('entity_manager')->defaultNull()->end()
                 ->arrayNode('templates')
                 ->arrayNode('templates')
                     ->addDefaultsIfNotSet()
                     ->addDefaultsIfNotSet()
                     ->children()
                     ->children()

+ 2 - 0
DependencyInjection/SonataDoctrineORMAdminExtension.php

@@ -47,6 +47,8 @@ class SonataDoctrineORMAdminExtension extends Extension
         $processor = new Processor();
         $processor = new Processor();
         $config = $processor->processConfiguration($configuration, $configs);
         $config = $processor->processConfiguration($configuration, $configs);
 
 
+        $container->setParameter('sonata_doctrine_orm_admin.entity_manager', $config['entity_manager']);
+
         $pool = $container->getDefinition('sonata.admin.manager.orm');
         $pool = $container->getDefinition('sonata.admin.manager.orm');
         $pool->addMethodCall('__hack_doctrine_orm__', $config);
         $pool->addMethodCall('__hack_doctrine_orm__', $config);
 
 

+ 8 - 1
Resources/config/doctrine_orm.xml

@@ -4,10 +4,17 @@
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            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">
            xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
 
 
+    <parameters>
+        <parameter key="sonata_doctrine_orm_admin.entity_manager" />
+    </parameters>
+
     <services>
     <services>
+        <service id="sonata.admin.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">
         <service id="sonata.admin.manager.orm" class="Sonata\DoctrineORMAdminBundle\Model\ModelManager">
-            <argument type="service" id="doctrine.orm.default_entity_manager" />
+            <argument type="service" id="sonata.admin.entity_manager" />
         </service>
         </service>
 
 
         <!-- FormBuilder -->
         <!-- FormBuilder -->

+ 1 - 0
Resources/doc/index.rst

@@ -21,6 +21,7 @@ Reference Guide
    :numbered:
    :numbered:
 
 
    reference/installation
    reference/installation
+   reference/configuration
    reference/list_field_definition
    reference/list_field_definition
    reference/filter_field_definition
    reference/filter_field_definition
    reference/form_field_definition
    reference/form_field_definition

+ 48 - 0
Resources/doc/reference/configuration.rst

@@ -0,0 +1,48 @@
+Configuration
+=============
+
+The configuration section is only about the ``SonataDoctrineORMAdminBundle`` for more information about the
+global configuration of the ``SonataAdminBundle`` please refer to the dedicated documentation.
+
+Full Configuration Options
+==========================
+
+.. code-block:: yaml
+
+    sonata_doctrine_orm_admin:
+        # default value is null, so doctrine uses the value defined in the configuration
+        # which is by default .... 'default'
+        entity_manager: default
+
+        templates:
+            form:
+                - SonataDoctrineORMAdminBundle:Form:form_admin_fields.html.twig
+            filter:
+                - SonataDoctrineORMAdminBundle:Form:filter_admin_fields.html.twig
+            types:
+                list:
+                    array:      SonataAdminBundle:CRUD:list_array.html.twig
+                    boolean:    SonataAdminBundle:CRUD:list_boolean.html.twig
+                    date:       SonataAdminBundle:CRUD:list_date.html.twig
+                    datetime:   SonataAdminBundle:CRUD:list_datetime.html.twig
+                    text:       SonataAdminBundle:CRUD:base_list_field.html.twig
+                    trans:      SonataAdminBundle:CRUD:list_trans.html.twig
+                    string:     SonataAdminBundle:CRUD:base_list_field.html.twig
+                    smallint:   SonataAdminBundle:CRUD:base_list_field.html.twig
+                    bigint:     SonataAdminBundle:CRUD:base_list_field.html.twig
+                    integer:    SonataAdminBundle:CRUD:base_list_field.html.twig
+                    decimal:    SonataAdminBundle:CRUD:base_list_field.html.twig
+                    identifier: SonataAdminBundle:CRUD:base_list_field.html.twig
+
+                show:
+                    array:      SonataAdminBundle:CRUD:show_array.html.twig
+                    boolean:    SonataAdminBundle:CRUD:show_boolean.html.twig
+                    date:       SonataAdminBundle:CRUD:show_date.html.twig
+                    datetime:   SonataAdminBundle:CRUD:show_datetime.html.twig
+                    text:       SonataAdminBundle:CRUD:base_show_field.html.twig
+                    trans:      SonataAdminBundle:CRUD:show_trans.html.twig
+                    string:     SonataAdminBundle:CRUD:base_show_field.html.twig
+                    smallint:   SonataAdminBundle:CRUD:base_show_field.html.twig
+                    bigint:     SonataAdminBundle:CRUD:base_show_field.html.twig
+                    integer:    SonataAdminBundle:CRUD:base_show_field.html.twig
+                    decimal:    SonataAdminBundle:CRUD:base_show_field.html.twig

+ 26 - 26
Resources/doc/reference/templates.rst

@@ -33,33 +33,33 @@ You can also customize field types by adding types in the ``config.yml`` file. T
 
 
     sonata_doctrine_orm_admin:
     sonata_doctrine_orm_admin:
         templates:
         templates:
-        types:
-            list:
-                array:      SonataAdminBundle:CRUD:list_array.html.twig
-                boolean:    SonataAdminBundle:CRUD:list_boolean.html.twig
-                date:       SonataAdminBundle:CRUD:list_date.html.twig
-                datetime:   SonataAdminBundle:CRUD:list_datetime.html.twig
-                text:       SonataAdminBundle:CRUD:base_list_field.html.twig
-                trans:      SonataAdminBundle:CRUD:list_trans.html.twig
-                string:     SonataAdminBundle:CRUD:base_list_field.html.twig
-                smallint:   SonataAdminBundle:CRUD:base_list_field.html.twig
-                bigint:     SonataAdminBundle:CRUD:base_list_field.html.twig
-                integer:    SonataAdminBundle:CRUD:base_list_field.html.twig
-                decimal:    SonataAdminBundle:CRUD:base_list_field.html.twig
-                identifier: SonataAdminBundle:CRUD:base_list_field.html.twig
+            types:
+                list:
+                    array:      SonataAdminBundle:CRUD:list_array.html.twig
+                    boolean:    SonataAdminBundle:CRUD:list_boolean.html.twig
+                    date:       SonataAdminBundle:CRUD:list_date.html.twig
+                    datetime:   SonataAdminBundle:CRUD:list_datetime.html.twig
+                    text:       SonataAdminBundle:CRUD:base_list_field.html.twig
+                    trans:      SonataAdminBundle:CRUD:list_trans.html.twig
+                    string:     SonataAdminBundle:CRUD:base_list_field.html.twig
+                    smallint:   SonataAdminBundle:CRUD:base_list_field.html.twig
+                    bigint:     SonataAdminBundle:CRUD:base_list_field.html.twig
+                    integer:    SonataAdminBundle:CRUD:base_list_field.html.twig
+                    decimal:    SonataAdminBundle:CRUD:base_list_field.html.twig
+                    identifier: SonataAdminBundle:CRUD:base_list_field.html.twig
 
 
-            show:
-                array:      SonataAdminBundle:CRUD:show_array.html.twig
-                boolean:    SonataAdminBundle:CRUD:show_boolean.html.twig
-                date:       SonataAdminBundle:CRUD:show_date.html.twig
-                datetime:   SonataAdminBundle:CRUD:show_datetime.html.twig
-                text:       SonataAdminBundle:CRUD:base_show_field.html.twig
-                trans:      SonataAdminBundle:CRUD:show_trans.html.twig
-                string:     SonataAdminBundle:CRUD:base_show_field.html.twig
-                smallint:   SonataAdminBundle:CRUD:base_show_field.html.twig
-                bigint:     SonataAdminBundle:CRUD:base_show_field.html.twig
-                integer:    SonataAdminBundle:CRUD:base_show_field.html.twig
-                decimal:    SonataAdminBundle:CRUD:base_show_field.html.twig
+                show:
+                    array:      SonataAdminBundle:CRUD:show_array.html.twig
+                    boolean:    SonataAdminBundle:CRUD:show_boolean.html.twig
+                    date:       SonataAdminBundle:CRUD:show_date.html.twig
+                    datetime:   SonataAdminBundle:CRUD:show_datetime.html.twig
+                    text:       SonataAdminBundle:CRUD:base_show_field.html.twig
+                    trans:      SonataAdminBundle:CRUD:show_trans.html.twig
+                    string:     SonataAdminBundle:CRUD:base_show_field.html.twig
+                    smallint:   SonataAdminBundle:CRUD:base_show_field.html.twig
+                    bigint:     SonataAdminBundle:CRUD:base_show_field.html.twig
+                    integer:    SonataAdminBundle:CRUD:base_show_field.html.twig
+                    decimal:    SonataAdminBundle:CRUD:base_show_field.html.twig
 
 
 .. note::
 .. note::