相关疑难解决方法(0)

Symfony 2:从存储库创建服务

我正在学习Symfony,我一直在尝试使用存储库创建服务.我已经从generate:entity创建了我的存储库和实体,所以它们应该没问题.

到目前为止,我在services.yml中得到的是:

parameters:
    mytest.entity: TestTestBundle:Brand
    mytest.class:  Test\TestBundle\Entity\Brand
    default_repository.class: Doctrine\ORM\EntityRepository

services:
     myservice:
          class: %default_repository.class%
          factory-service: doctrine.orm.default_entity_manager
          factory-method: getRepository
          arguments:
            - %mytest.entity%
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用该服务时,我收到此错误:

Catchable Fatal Error: Argument 2 passed to Doctrine\ORM\EntityRepository::__construct() must be an instance of Doctrine\ORM\Mapping\ClassMetadata, none given, called in 
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用实体创建服务.我的services.yml看起来像:

services:
     myservice:
          class: %mytest.class%
          factory-service: doctrine.orm.default_entity_manager
          factory-method: getRepository
          arguments:
            - %mytest.entity%
Run Code Online (Sandbox Code Playgroud)

但为此,我得到:

Error: Call to undefined method 
                Test\TestBundle\Entity\Brand::findAll
Run Code Online (Sandbox Code Playgroud)

有人知道我做错了什么吗?

谢谢

service repository symfony doctrine-orm

17
推荐指数
3
解决办法
2万
查看次数

Symfony - 在服务中注入doctrine存储库

根据如何将存储库注入Symfony2中的服务? 就像是

acme.custom_repository:
    class: Doctrine\ORM\EntityRepository
    factory: ['@doctrine.orm.entity_manager', getRepository]
    arguments:
        - 'Acme\FileBundle\Model\File'
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外

无效的服务"acme.custom_repository":类"EntityManager5aa02de170f88_546a8d27f194334ee012bfe64f629947b07e4919__CG __\Doctrine\ORM\EntityManager"不存在.

我怎么能在Symfony 3.4中做到这一点?

更新:

EntityClass实际上是一个有效的类FQCN(也可以在phpstorm上使用复制引用),只是重命名它,因为公司名称在其中:).无论如何更新它.

BlueM的解决方案非常有效.如果你没有使用自动装配这里是服务定义:

Acme\AcmeBundle\Respository\MyEntityRepository:
    arguments:
        - '@Doctrine\Common\Persistence\ManagerRegistry'
        - Acme\AcmeBundle\Model\MyEntity # '%my_entity_class_parameter%'
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm symfony-3.4

9
推荐指数
2
解决办法
9061
查看次数

标签 统计

doctrine-orm ×2

symfony ×2

php ×1

repository ×1

service ×1

symfony-3.4 ×1