Symfony Doctrine UniqueConstraint错误常量表达式包含无效操作



试图在Postgres数据库上用Doctrine为两个字段创建UniqueConstraint,在运行make:migration时出错。

"编译错误:常量表达式包含无效操作";

我在SO上搜索了一下,它似乎与在类中创建静态属性有关。

不确定它为什么这样解释下面的代码:

#[
ORMEntity(repositoryClass: SalesChannelRepository::class),
ORMTable(
name: "sales_channel",
schema: "my_schema",
UniqueConstraint: [
UniqueConstraint(
name: "name_idx",
fields: ["sales_channel_name_id", "multi_channel_id"]
),
]
),
]

这些属性似乎与条令文件一致。

我确实尝试了一些变体,比如使用columns而不是字段,或者使用ORMUniqueConstraint,但这并没有帮助。

删除特定属性后运行make:migration效果良好。

根据文档(https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/attributes-reference.html#attrref_uniqueconstraint),以及我练习的内容。你应该尝试修复:

use DoctrineORMMapping as ORM;

#[ORMEntity(repositoryClass: SalesChannelRepository::class)]
#[ORMTable(name: "sales_channel")]
#[ORMUniqueConstraint(name: "name_idx", columns: ["sales_channel_name_id", "multi_channel_id"])]
class SalesChannel
{...

最新更新