Symfony2s doctrine:generate:实体不生成repo类

Tom*_*ski 18 doctrine symfony

我使用Symfony2文档.据说补充说

/**
 * @ORM\Entity(repositoryClass="Acme\StoreBundle\Entity\ProductRepository")
 */
Run Code Online (Sandbox Code Playgroud)

在我的实体文件中运行php app/console doctrine:generate:entities Acme应该创建该ProductRepository文件.它没有.我不能更清楚地说明这一点,它只是没有创建该文件,只是重新创建之前存在的那些实体文件.

Dav*_*__1 26

我有相同的问题

但我在这里找到了答案:http: //brentertainment.com/other/docs/book/doctrine/orm.html

如果在添加repositoryClass映射之前已经生成了实体类,则必须自己创建类.幸运的是,这很容易.只需在捆绑包的Repository目录中创建类,并确保它扩展了Doctrine\ORM\EntityRepository.创建类后,可以添加任何方法来查询实体.

很简单,我们必须手动完成,因为我们已经运行过一次

  • 我正在使用Symfony 2.6,似乎不再是这种情况了.我将存储库添加到我的实体的注释中,并且Doctrine生成了存储库,即使我之前没有存储库也生成了实体. (2认同)
  • 在symfony 2.7中,您使用此命令生成实体和存储库类:"php app/console doctrine:generate:entity --entity VisitorData --with-repository" (2认同)

avk*_*kov 8

您可以尝试指定特定的包:

php app/console doctrine:generate:entities AcmeStoreBundle

请注意,我有完整的捆绑名称.

即使你doctrine:generate:entities以前跑,这也必须有帮助.


gle*_*gui 8

如果您使用orm.yml文件生成实体,则可以定义repositoryClass,然后再次生成实体:

Acme\StoreBundle\Entity\Product:
type: entity
table: product
...
repositoryClass: Acme\StoreBundle\Entity\ProductRepository
...
Run Code Online (Sandbox Code Playgroud)

然后运行:

php app/console doctrine:generate:entities AcmeStoreBundle
Run Code Online (Sandbox Code Playgroud)