在symfony中使用捆绑实体的标准方法是什么?

问题描述 投票:1回答:1

我一直在尝试学习如何在symfony中使用捆绑软件,但是遇到了使捆绑软件实体显示在数据库中的一些问题。通过将最后几行添加到我的doctrine.yaml文件中,终于使它起作用。但是由于某种原因,这似乎不太可能是正确的处理方法,因为只有当我将'is_bundle'属性设置为false时,它才有效,而鉴于它是来自捆绑包。

使该实体出现在数据库中的正确方法是什么?

我的学说文件:

doctrine:
  dbal:
    default_connection: default
    connections:
      default:
        # configure these for your database server
        url: '%env(DATABASE_URL)%'
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8mb4
        unix_socket: '/Applications/MAMP/tmp/mysql/mysql.sock'
        default_table_options:
          charset: utf8mb4
          collate: utf8mb4_unicode_ci

  orm:
    default_entity_manager: default
    entity_managers:
      default:
        connection: default
        mappings:
          default:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/Entity'
            prefix: 'App\Entity'
            alias: default
          ch_cookie_consent_bundle:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/vendor/connectholland/cookie-consent-bundle/Entity'
            prefix: 'ConnectHolland\CookieConsentBundle\Entity'
            alias: ch_cookie_consent_bundle 

捆绑包本身可以在这里找到:https://github.com/ConnectHolland/cookie-consent-bundle

php symfony doctrine
1个回答
0
投票

is_bundle标志指示该学说扩展名以使配置密钥与分发包名称匹配。

在您的情况下,配置应为

  orm:
    mappings:
      default:
        ...
      CHCookieConsentBundle: # This should match the bundle name (in %kernel.bundles%)
        is_bundle: true
        alias: ch_cookie_consent_bundle

所有其他配置键都是可选的,并且会自动检测到。

© www.soinside.com 2019 - 2024. All rights reserved.