主义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']); 
} 

有了上面的代码,我是能够产生这样的表:

enter image description here

现在,某个地方在我的代码,我插入为users表中的记录:

$connection->insert('users', ['email' => '[email protected]', 'roles' => ['admin', 'editor']]); 

我能够成功执行该插入呼叫。但问题是roles列不作为承诺的学说文档存储 - see simple_array in Doctrine Types。下面是它是如何实际存储在我的部分:

enter image description here

我追查主义的核心代码库,我真的不能找到的变压器码任何提示变换“simple_array”类型的逗号内爆字符串。

我之前曾与Doctrine ORM一起工作,并且工作正常。这是教义ORM实施的东西,而不是由教条DBAL本身?如果是这样,DBAL应该怎么做?手动?

谢谢。

我认为它位于:dbal\lib\Doctrine\DBAL\Types\SimpleArrayType.php行45-57,功能convertToDatabaseValueconvertToPHPValue

也许因为您正在使用低级函数(DBAL),它不会自动触发。 (所以你可能需要在这里添加第三个参数) $connection->insert('users', ['email' => '[email protected]', 'roles' => ['admin', 'editor']], ['email' => Type::STRING, 'roles' => Type::SIMPLE_ARRAY]);