答案 0 :(得分:1)
您收到错误"" Doctrine \ ORM \ EntityManager":其构造函数必须是公共的。" ,因为默认情况下symfony尝试创建如果没有工厂定义,则使用其名称作为类并调用其构造函数。 Doctrine\ORM\EntityManager:__construct is protected,因此不能在此类之外使用新的EntityManager ,或仅从扩展它的类中使用。
您应该使用create factory method并提供其参数:
parameters:
doctrine.orm.entitymanager.factory: Doctrine\ORM\EntityManager
services:
Doctrine\ORM\EntityManager:
class: Doctrine\ORM\EntityManager
factory: ["%doctrine.orm.entitymanager.factory%", "create"]
arguments:
$connection: "provide the connection also here"
$config: "provide the config also here"
public: true
在这种情况下不需要行类:Doctrine \ ORM \ EntityManager ,如果省略,类将默认为服务名称。
您还必须将工厂参数($ connection& config)定义为服务并将它们提供给工厂。
PS:我不知道你想要做什么,但也许你正在寻找的东西已经可以使用Doctrine Bundle 完成