主义DBAL`simple_array`类型不转化
问题描述:
我在架构定义有型“simple_array”一栏:主义DBAL`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' => '[email protected]', 'roles' => ['admin', 'editor']]);
我能够成功执行该插入呼叫。但问题是roles
列不作为承诺的学说文档存储 - see simple_array in Doctrine Types。下面是它是如何实际存储在我的部分:
我追查主义的核心代码库,我真的不能找到的变压器码任何提示变换“simple_array”类型的逗号内爆字符串。
我之前曾与Doctrine ORM一起工作,并且工作正常。这是教义ORM实施的东西,而不是由教条DBAL本身?如果是这样,DBAL应该怎么做?手动?
谢谢。
答
我认为它位于:dbal\lib\Doctrine\DBAL\Types\SimpleArrayType.php
行45-57,功能convertToDatabaseValue
和convertToPHPValue
。
也许因为您正在使用低级函数(DBAL),它不会自动触发。 (所以你可能需要在这里添加第三个参数) $connection->insert('users', ['email' => '[email protected]', 'roles' => ['admin', 'editor']], ['email' => Type::STRING, 'roles' => Type::SIMPLE_ARRAY]);