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

8

我是Symfony4的新手。

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

当我尝试运行php bin/console make:entity时,没有生成与此实体相关联的yaml映射文件。

这是我的doctrine.yaml文件:

parameters:
    # 如果环境变量未设置,则添加回退的DATABASE_URL。
    # 这样您即使在环境变量不可用时也可以运行cache:warmup。
    # 您不需要更改此值。
    env(DATABASE_URL): ''
doctrine: dbal: # 为您的数据库服务器配置这些 driver: 'pdo_mysql' server_version: '5.7' charset: utf8mb4
# 在Symfony 3.3中,请删除“resolve:”前缀 url: '%env(resolve:DATABASE_URL)%' orm: auto_generate_proxy_classes: '%kernel.debug%' naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true mappings: App: is_bundle: false type: yml dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App

5
YAML 将被从 Doctrine 中移除,请参见 https://github.com/doctrine/DoctrineBundle/issues/776 - Thomas Landauer
1个回答

10

根据您的需求,以下是映射示例:

更改包括"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 映射 (v2.6 当前版本)


@redigaffi,链接已更新至最新版本,感谢您的通知。 - gp_sflover
我在Symfony 5.1中使用注释遇到了同样的问题,不幸的是,我无法通过您提供的解决方案找到解决方法... - Alex
@Alex 在 SO 上提出了一个问题,但请记住,yaml 驱动程序已被弃用并从版本 3.0 中删除,因此强烈建议使用另一个映射驱动程序,如 xml。 - gp_sflover
是的,我昨天提出了我的问题:https://stackoverflow.com/questions/63367323/symfony-5-1-bundle-migration-result-in-no-mapping-information-to-process yaml已经被弃用了吗?所有我的Symfony 5.1 Web骨架都默认配置为yaml!我应该改变它吗? - Alex
@Alex,是的,在Doctrine中作为映射驱动程序已经被弃用了(请阅读我回答中的参考链接)。 - gp_sflover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接