如何配置Symfony以使用实体提供程序中的默认实体管理器以外的实体管理器?

时间:2014-03-20 15:57:18

标签: symfony

不知何故,我需要使用aux连接/实体管理器......

security.yml:

security:
    providers:
        administrators:
            entity: { class: Hoax\PartnerBundle\Entity\Partner, property: username }

config.yml:

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   %database1_driver%
                host:     %database1_host%
                port:     %database1_port%
                dbname:   %database1_name%
                user:     %database1_user%
                password: %database1_password%
                charset:  UTF8
                mapping_types:
                    enum: string
            aux:
                driver:   %database2_driver%
                host:     %database2_host%
                port:     %database2_port%
                dbname:   %database2_name%
                user:     %database2_user%
                password: %database2_password%
                charset:  UTF8
                mapping_types:
                    enum: string

orm:
    auto_generate_proxy_classes: %kernel.debug%
    default_entity_manager:   default
    entity_managers:
        default:
            connection:       default
            mappings:
                HoaxNotificationsBundle: ~
                HoaxPartnerBundle: ~
        vpnserver:
            connection:       aux
            mappings:
                HoaxPartnerBundle: ~
        vpnpayment:
            connection:       payment
            mappings:
                HoaxPartnerBundle: ~

的Symfony /网桥/学说/安全性/用户/ EntityUserProvider.php:

class EntityUserProvider implements UserProviderInterface
{
    private $class;
    private $repository;
    private $property;
    private $metadata;

    public function __construct(ManagerRegistry $registry, $class, $property = null, $managerName = null)

我尝试将其设置为:{ class: Hoax\PartnerBundle\Entity\Partner, property: username, managerName: aux }

但有错误:InvalidConfigurationException: Unrecognized options "managerName" under "security.providers.administrators.entity"

1 个答案:

答案 0 :(得分:2)

  1. 进一步阅读:symfony.com/doc/current/cookbook/doctrine / ...如果您仍有问题,请使用doctrine的orm部分更新您的问题。

  2. 您还需要将实体管理器名称添加到安全文件的提供程序部分:symfony.com/doc/current/reference/configuration/security.html

  3. 确保使用manager_name而不是managerName