我一直在尝试学习如何在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
is_bundle
标志指示该学说扩展名以使配置密钥与分发包名称匹配。
在您的情况下,配置应为
orm:
mappings:
default:
...
CHCookieConsentBundle: # This should match the bundle name (in %kernel.bundles%)
is_bundle: true
alias: ch_cookie_consent_bundle
所有其他配置键都是可选的,并且会自动检测到。