2016-11-23 9 views
1

に変換されていない私は自分のスキーマ定義を入力し、「simple_array」の列を持っている教義DBAL `simple_array`タイプは

enter image description here

は今、どこかに私のコードでは、私はそのusersテーブルのレコードを挿入:

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

その挿入呼び出しを正常に実行することができました。しかし、事実は、see simple_array in Doctrine Typesと約束された教義の文書としてrolesの列が格納されていないことです。ここでは、実際に私の一部に格納する方法である:私は教義のコアコードベースをトレースして、私は本当にコンマにその「simple_array」タイプを変換するトランスコードのいずれかのヒントを見つけることができませんenter image description here

爆縮された文字列。

私は以前Doctrine ORMで作業していましたが、これは問題なく動作していました。 Doctrine ORMが実装したものであり、Doctrine DBAL自体で実装されていないものですか?もしそうなら、これはDBALでどのように行うべきですか?手動で?

ありがとうございました。

答えて

0

私はそれが:dbal\lib\Doctrine\DBAL\Types\SimpleArrayType.php行45-57、機能convertToDatabaseValueconvertToPHPValueにあると思います。

おそらく低レベル関数(DBAL)を使用しているため、自動的にトリガされない可能性があります。 (ここで3番目のパラメータを追加する必要があります) $connection->insert('users', ['email' => '[email protected]', 'roles' => ['admin', 'editor']], ['email' => Type::STRING, 'roles' => Type::SIMPLE_ARRAY]);