Symfony2/Doctrine 找不到自定义存储库类的映射文件



我喜欢学说,但是我在映射/注释方面有一些问题。开始时,我使用了映射文件。然后我转换为注释。现在我要o创建自定义存储库类,所以我在这里阅读时做过:http://symfony.com/doc/current/book/doctrine.html#custom-repository-clasees。

不幸的是,现在我有一个错误:

No mapping file found named 'srcVendorProductBundleResourcesconfigdoctrine/SynchronizationSettingRepository.orm.yml' for class 'VendorProductBundleEntitySynchronizationSettingRepository'. 

当然我没有这个文件,因为我不再使用映射了。我添加了:

  * @ORMEntity(repositoryClass="VendorProductBundleEntitySynchronizationSettingRepository") 

父母和再生实体。我通过命令PHP应用程序/控制台学说重新生成:生成:实体vendorproductuctbundle,仍然什么也没有。主体和学说Meadata Cache清楚。

这是一个YML,我想从我想再生成自定义存储库:

VendorProductBundleEntitySynchronizationSetting:
    type: entity
    table: synchronization_setting
    repositoryClass: VendorSynchronizationSettingEntitySynchronizationSettingRepository
    indexes:
        id_product:
            columns:
                - id_product
    id:
        id:
            type: integer
            nullable: false
            unsigned: true
            comment: ''
            id: true
            generator:
                strategy: IDENTITY
    fields:
        open:
            type: string
            nullable: true
            length: 1
            fixed: true
            comment: ''
            default: '0'
        internet:
            type: string
            nullable: true
            length: 1
            fixed: true
            comment: ''
            default: '0'
    manyToOne:
        idProduct:
            targetEntity: Product
            cascade: {  }
            mappedBy: null
            inversedBy: null
            joinColumns:
                id_product:
                    referencedColumnName: id
            orphanRemoval: false
    lifecycleCallbacks: {  }

这是一个存储库类:

<?php
    // src/Acme/StoreBundle/Entity/ProductRepository.php
    namespace VendorProductBundleEntity;
    use DoctrineORMEntityRepository;
    class SynchronizationSettingRepository extends EntityRepository
    {
        public function findAllOrderedByName()
        {
            return $this->getEntityManager()
                ->createQuery(
                    'SELECT p FROM AcmeStoreBundle:Product p ORDER BY p.name ASC'
                )
                ->getResult();
        }
    }

我认为添加 @ORMEntity做得很好,因为完整的 .php类文件在运行 doctrine:generate:entities后立即被覆盖。您需要将repositotyClass改为YML文件。

如果您善待注释,则这些.yml文件(实际上是config中的整个doctrine目录)是没有用的,是用于生成基于Annotaion的实体的中间文件。

另一件事:教义认为您具有名称为"存储库"的实体。

您可以向我们展示YML文件的内容吗?如果您没有它(如您所说),那么生成实体将是不可能的。您总是可以直接生成基于Annotaion的实体(不需要YML Intermediates)

相关内容

  • 没有找到相关文章

最新更新