Symfony:原则找不到首字母大写的表

eh57zj3b  于 2023-03-03  发布在  其他
关注(0)|答案(3)|浏览(155)

我有这样一个数据库,其中所有的表都有这样的格式:
一些数据
列的名称如下所示:
用户信息
基本上,第一个字母大写,Doctrine找不到表/列
我尝试添加一个命名策略:

naming_strategy: doctrine.orm.naming_strategy.underscore

但那不管用。
我还尝试将MySQL表名的小写设置为1

lower_case_table_names = 1

这样做效果不好。如果我将所有表和列的名称都改为小写,就可以正常工作。但是,我无法在生产数据库中这样做,那么如何让Doctrine找到具有该格式的表呢?
顺便说一句,表已经创建,我不能修改它们

mbyulnm0

mbyulnm01#

您有两个选择:
1.实现自定义命名策略,您可以根据需要生成表名。查看文档Doctrine Naming Strategy
1.在每个实体中设置所需的表名:@ORM\Table(name="SomeName")

cdmah0mi

cdmah0mi2#

    • 更新日期:**

找到了解决方案。我不得不在实体中这样写表名:

@ORM\Table(name="`Somename`")

资料来源:
Doctrine - PostgreSQL - Uppercase and Spaces in Table / Field****names

k4emjkb1

k4emjkb13#

对于Symfony 6,您应该使用#[ORM\Table("Somename")]。它应该像这样使用:

#[ORM\Entity(repositoryClass: SomenameRepository::class)]
#[ORM\Table("Somename")]
class Somename {
   // here all your fields
}

相关问题