doctrine-orm – Doctrine ORM – 如何映射jsonb / yaml?

在我的项目中,我使用的是Doctrine doctrine 2.5.4 / postgres 9.5.我正在尝试使用yaml添加jsonb字段:

fields:
  obj: json_array

这会转换为json(而不是jsonb).关于拾取json或jsonb的规范说明:

Chosen if the column definition contains the jsonb option inside the platformOptions attribute array and is set to true.

但是platformOptions似乎不起作用(试图在obj下面添加它,在顶部……没有成功).如何添加jsonb字段?

谢谢,丹

最佳答案 这是由doctrine / dbal v2.6支持的(它需要PHP 7.1).你需要做的就是使用json_array并设置options = {“jsonb”= true}我在doctrine / dbal v2.6.3上进行了测试

这就是PHP格式的样子

/**
 * @ORM\Column(type="json_array",nullable=true,options={"jsonb"=true})
 */
private $details;

并创建查询,例如(对于现有的talble):

ALTER TABLE mytable ADD details JSONB NOT NULL;
点赞