我想在我的项目中实现Symfony安全性。问题是我必须使用两个数据库(一个用于管理员,第二个用于用户)。我已经配置了config.yml:
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: default
entity_managers:
default:
connection: system
mappings:
FinanceCmsBundle: ~
admin:
connection: admin
mappings:
FinanceCzBundle: ~
并设置我的security.yml:
security:
encoders:
Finance\CmsBundle\Entity\AuthUser:
algorithm: md5
encode_as_base64: false
iterations: 0
Finance\CzBundle\Entity\SystemAuthMailCentrum:
algorithm: md5
encode_as_base64: false
iterations: 0
providers:
administrators:
entity:
class: FinanceCmsBundle:AuthUser
property: username
ussers:
entity:
class: FinanceCzBundle:SystemAuthMailCentrum
property: username
在我开始之前,我在FinanceCmsBundle:SystemAuthMailCentrum下的数据库表上复制了它,它运行正常。
现在aplication以" Doctrine \ ORM \ ORMException
结束 Unknown Entity namespace alias 'FinanceCzBundle'"
我试图在config.yml中切换它们(FinanceCzBundle和FinanceCmsBundle),看起来aplication只知道config.yml中设置的默认Bundle。因为在此切换之后它找不到FinanceCmsBundle。
所以我尝试使用完整的路线,如:
providers:
administrators:
entity:
class: Finance\CmsBundle\Entity\AuthUser
property: username
ussers:
entity:
class: Finance\CzBundle\Entity\SystemAuthMailCentrum
property: username
之后我得到了不同的错误:"Doctrine\Common\Persistence\Mapping\MappingException
The class 'Finance\CzBundle\Entity\SystemAuthMailCentrum' was not found in the chain configured namespaces Finance\CmsBundle\Entity"
非常感谢您的回答。
P.S:使用一个数据库会更容易,但代码很旧,我不得不在很多地方修复它。
答案 0 :(得分:1)
尝试将实体管理器设置为提供者,我认为它应该有所帮助:
providers:
administrators:
entity:
class: FinanceCmsBundle:AuthUser
property: username
ussers:
entity:
class: FinanceCzBundle:SystemAuthMailCentrum
property: username
manager_name: admin