如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射

Posted

技术标签:

【中文标题】如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射【英文标题】:How to configure Doctrine to use yaml mapping on Symfony 4 【发布时间】:2018-06-03 20:48:22 【问题描述】:

我是 Symfony 的新手4

我使用 Doctrine 我想使用 yaml 实体映射。 所以我配置了文件doctrine.yaml并将type:annotation更改为type:yml

当我尝试php bin/console make:entity时,没有生成链接到该实体的yaml映射文件

这是我的doctrine.yaml 文件:

参数: # 如果未设置 env var,则添加后备 DATABASE_URL。 # 这允许你运行 cache:warmup 即使你的 # 环境变量尚不可用。 # 你不需要改变这个值。 环境(DATABASE_URL):'' 教义: 分贝: # 为您的数据库服务器配置这些 驱动程序:'pdo_mysql' 服务器版本:'5.7' 字符集:utf8mb4 # 在 Symfony 3.3 中,移除 `resolve:` 前缀 url: '%env(resolve:DATABASE_URL)%' 形式: auto_generate_proxy_classes: '%kernel.debug%' 命名策略:教义.orm.naming_strategy.underscore 自动映射:真 映射: 应用程序: is_bundle: 假 类型:yml 目录:'%kernel.project_dir%/src/Entity' 前缀:'应用\实体' 别名:应用

【问题讨论】:

YAML 将从 Doctrine 中删除,请参阅 github.com/doctrine/DoctrineBundle/issues/776 【参考方案1】:

根据您的需要进行映射的示例:

更改包含“orm”文本doctrine.orm.yaml 的文件名,并查看以下示例中的dir 选项(符合您的需要 ):

App:
    is_bundle: false
    type: yml
    # "dir" in this case must be pointed where are stored your doctrine files (can be anywhere inside the project dir)
    dir: "%kernel.project_dir%/config/doctrine"
    prefix: App\Entity

参考:Doctrine yaml mapping (v2.6 current)

【讨论】:

@redigaffi 链接已更新为当前版本,感谢您通知我。 我在带有注释的 symfony 5.1 中遇到了同样的问题,不幸的是我找不到您的解决方案.... @Alex open a question on SO 但请记住 yaml 驱动程序已被弃用并从 3.0 版中删除,因此强烈建议使用其他映射驱动程序,如 xml 是的,我昨天提出了我的问题:***.com/questions/63367323/… yaml 已弃用?我所有的 symfony 5.1 web 框架都默认配置了 yaml!我应该改变它吗? @Alex yes 在 Doctrine 中被弃用为映射驱动程序(阅读我的答案中的参考链接)。

以上是关于如何在 Symfony 4 上配置 Doctrine 以使用 yaml 映射的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony 3.4 中设置基于域的配置?

如何在 PHP docker 镜像上安装 yarn 和 npm(symfony 4 项目)

如何配置服务类以使用 BazingaGeocoderBundle 和 Symfony 3.4

Symfony 4 服务器配置期间出现错误 AH00124

如何在 symfony 2 中配置 SwiftMailer?

如何在 Sonata/Symfony 3.3 中设置内容配置?