【发布时间】:2017-04-07 16:53:28
【问题描述】:
我的架构定义中有一个类型为“simple_array”的列:
public function up(Schema $schema)
{
$users = $schema->createTable('users');
$users->addColumn('id', 'integer', ['unsigned' => true,
'autoincrement' => true]);
$users->addColumn('email', 'string', ['length' => 100]);
$users->addColumn('roles', 'simple_array');
$users->setPrimaryKey(['id']);
}
使用上面的代码,我能够生成这样的表格:
现在,在我的代码中,我为 users 表插入了一条记录:
$connection->insert('users', ['email' => 'a@b.c', 'roles' => ['admin', 'editor']]);
我能够成功执行该插入调用。但问题是roles 列没有按照教义文档承诺的那样存储-see simple_array in Doctrine Types。以下是我的实际存储方式:
我追踪了 Doctrine 的核心代码库,但我真的找不到任何关于将“simple_array”类型转换为逗号内爆字符串的转换器代码提示。
我之前使用过 Doctrine ORM,并且效果很好。这是 Doctrine ORM 实现的东西,而不是 Doctrine DBAL 本身的东西吗?如果是这样,这应该如何在 DBAL 中完成?手动?
谢谢。
【问题讨论】:
标签: php orm doctrine-orm doctrine dbal