【问题标题】:Entity alias in new symfony 2.7 directory structure新 symfony 2.7 目录结构中的实体别名
【发布时间】:2015-06-29 15:20:41
【问题描述】:

在适应 Symfony 2.7 中新的推荐结构后,我无法通过 $em->getRepository('Bundle:Entity') 访问实体别名。

这是我的目录结构:

MyBundle
    - Component
        - Catalog
            - Model
                Product.php

还有我在config.yml 中的映射定义:

mappings:
    mybundle:
        type:      annotation
        dir:       %kernel.root_dir%/../src/mybundle/Component/Product/Model
        prefix:    MyBundle\Component\Product\Model
        alias:     ??? # I tried different things

我应该写什么$em->getRepository('MyBundle:Product')而不是MyBundle:Product才能成功访问实体?

如果可能我想使用默认 Symfony 别名,所以我不需要为 config.yml 中的每个实体指定别名

【问题讨论】:

  • 是否有理由删除auto_mapping 选项?通常,如果您的捆绑包已正确注册,并且启用了 auto_mapping,则无论您如何命名捆绑包,使用短语法都应该没有问题。 编辑:如果您想重命名您的包,以下内容不适用,但要继续使用旧的包名称语法。
  • 嗯,我想我也忽略了这一点,我的意思是,generate:bundle,我对新结构做得不太好! :-P
  • 我会尝试从包生成重新启动,看看会发生什么

标签: symfony doctrine entity symfony-2.7


【解决方案1】:

实际上我不需要generate:bundle,因为它不是一个真正的包,而是一个命名空间和文件的逻辑组织。

解决办法是在getRespository()中指定完整的命名空间:

$em->getRepository('MyBundle\\Component\\Product\\Model\\CFGProduct)

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多