我有这样一个数据库,其中所有的表都有这样的格式:
一些数据
列的名称如下所示:
用户信息
基本上,第一个字母大写,Doctrine找不到表/列
我尝试添加一个命名策略:
naming_strategy: doctrine.orm.naming_strategy.underscore
但那不管用。
我还尝试将MySQL表名的小写设置为1
lower_case_table_names = 1
这样做效果不好。如果我将所有表和列的名称都改为小写,就可以正常工作。但是,我无法在生产数据库中这样做,那么如何让Doctrine找到具有该格式的表呢?
顺便说一句,表已经创建,我不能修改它们
3条答案
按热度按时间mbyulnm01#
您有两个选择:
1.实现自定义命名策略,您可以根据需要生成表名。查看文档Doctrine Naming Strategy
1.在每个实体中设置所需的表名:
@ORM\Table(name="SomeName")
cdmah0mi2#
找到了解决方案。我不得不在实体中这样写表名:
资料来源:
Doctrine - PostgreSQL - Uppercase and Spaces in Table / Field****names
k4emjkb13#
对于Symfony 6,您应该使用
#[ORM\Table("Somename")]
。它应该像这样使用: