make:entity command: [ERROR] make:entity 只支持注解映射
Posted
技术标签:
【中文标题】make:entity command: [ERROR] make:entity 只支持注解映射【英文标题】:make:entity command: [ERROR] Only annotation mapping is supported by make:entity 【发布时间】:2021-06-18 20:30:51 【问题描述】:当我尝试在 Symfony 5.2(maker-bundle v1.30.0)中创建一个新的学说实体时,我得到:
$ php bin/console make:entity
Class name of the entity to create or update (e.g. GrumpyChef):
> test
created: src/Entity/Test.php
created: src/Repository/TestRepository.php
[ERROR] Only annotation mapping is supported by make:entity, but the
<info>App\Entity\Test</info> class uses a different format. If you
would like this command to generate the properties & getter/setter
methods, add your mapping configuration, and then re-run this command
with the <info>--regenerate</info> flag.
文件已生成,我觉得它们看起来不错。对于现有实体,我得到相同的结果,除了“创建”行。几年前我读过类似的问题,但它们与不同的命名空间有关,这里不是这种情况,我使用的是默认命名空间。
我认为这个问题与更新有关,因为它之前(不确定是 5.0 还是 5.1)当然可以工作。
有什么方法可以调试 MakerBundle 或者知道如何解决这个问题吗?
谢谢。
../config/packages/doctrine.yaml(我想我没碰过这个):
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '5.7'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
$ php bin/console debug:config doctrine
Current configuration for extension with alias "doctrine"
=========================================================
doctrine:
dbal:
default_connection: default
connections:
default:
url: '%env(resolve:DATABASE_URL)%'
override_url: false
driver: pdo_mysql
logging: true
profiling: true
profiling_collect_backtrace: false
profiling_collect_schema_errors: true
options:
mapping_types:
default_table_options:
slaves:
replicas:
shards:
types:
orm:
auto_generate_proxy_classes: true
default_entity_manager: default
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: <<root_path>>/src/Entity
prefix: App\Entity
alias: App
mapping: true
query_cache_driver:
type: null
metadata_cache_driver:
type: null
result_cache_driver:
type: null
class_metadata_factory_name: Doctrine\ORM\Mapping\ClassMetadataFactory
default_repository_class: Doctrine\ORM\EntityRepository
quote_strategy: doctrine.orm.quote_strategy.default
entity_listener_resolver: null
repository_factory: doctrine.orm.container_repository_factory
hydrators:
filters:
proxy_dir: '%kernel.cache_dir%/doctrine/orm/Proxies'
proxy_namespace: Proxies
resolve_target_entities:
【问题讨论】:
同样的问题,上周我创建了一个网站骨架 sf 5.2.5,它成功了,今天早上创建一个新的并有这个问题。 您的映射配置是什么样的? @PtrTon 我想这就是你的意思。我的 DATABASE_URL ServerVersion 实际上是错误的(我在使用 MariaDB 时指定了 5.7),但没有区别。 其实我指的是this 好的,我还添加了 debug:config 原则输出,不确定哪个条目可能感兴趣。 【参考方案1】:https://github.com/symfony/maker-bundle/issues/841
symfony/maker-bundle v1.30.1 修复了它。
【讨论】:
composer update
-> Upgrading symfony/maker-bundle (v1.30.0 => v1.30.2)
现在可以了,感谢@Geekimo github.com/Geekimo 和其他人以上是关于make:entity command: [ERROR] make:entity 只支持注解映射的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 的 make:entity 命令创建的 ManyToMany 关系之间的握手
(已解决)npm ERR! command failed npm ERR! command git ls-remote ssh://git@github.com/nhn/raphael.git
io.lettuce.core.RedisCommandExecutionException: ERR unknown command 'GEOADD'
React项目创建报错解决方案npm ERR! code 1 npm ERR! path E:Node1untitled5 ode_modulesfibers npm ERR! command
React项目创建报错解决方案npm ERR! code 1 npm ERR! path E:Node1untitled5 ode_modulesfibers npm ERR! command(代码片