You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行make:entity时遇Types::ARRAY未定义错误,求Doctrine兼容版本

问题解决:Doctrine版本兼容方案

错误原因

你遇到的Undefined constant Doctrine\DBAL\Types\Types::ARRAY错误,核心是Doctrine DBAL版本过低:Types::ARRAY常量是在DBAL 3.1及以上版本才引入的,而当前依赖组合中,ORM 3.0可能默认拉取的DBAL版本不满足要求,同时Symfony MakerBundle(make:entity命令所属包)的版本也可能和ORM 3.0存在兼容问题。

兼容版本组合方案

方案一:Symfony 6.4 稳定兼容组合(推荐)

该方案基于Symfony官方推荐的版本搭配,冲突风险最低:

"doctrine/doctrine-bundle": "^2.11",
"doctrine/doctrine-migrations-bundle": "^3.3",
"doctrine/orm": "^2.16",
"doctrine/dbal": "^3.1",
"symfony/doctrine-messenger": "6.4.*",
"symfony/maker-bundle": "^1.50"

方案二:坚持使用 Doctrine ORM 3.0

若需保留ORM 3.0,需确保MakerBundle和DBAL版本适配:

"doctrine/doctrine-bundle": "^2.11",
"doctrine/doctrine-migrations-bundle": "^3.3",
"doctrine/orm": "^3.0",
"doctrine/dbal": "^3.1",
"symfony/doctrine-messenger": "6.4.*",
"symfony/maker-bundle": "^1.52"

操作步骤

  1. 修改composer.json中的对应依赖版本
  2. 执行命令更新指定包(避免全量更新引发冲突):
    composer update doctrine/* symfony/maker-bundle --with-all-dependencies
    
  3. 清理Symfony缓存:
    php bin/console cache:clear
    

注意事项

  • 若执行更新时出现冲突提示,优先查看冲突的依赖包,根据提示调整对应版本(比如某些第三方bundle可能限制了DBAL/ORM版本)
  • ORM 3.0存在部分向后兼容变更,若从旧版本升级,需检查实体映射文件是否符合ORM 3.0的规范

内容的提问来源于stack exchange,提问作者mauritsf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:00:40