2016-05-19 15 views
4

私のプロジェクトでは、Doctrine doctrine 2.5.4/postgres 9.5を使用しています。私はYAMLを使用してjsonbフィールドを追加しようとしています:Doctrine ORM - jsonb/yamlのマッピング方法?

fields: 
    obj: json_array 

これは、JSON(とないjsonb)に変換されます。この仕様では、jsonまたはjsonbのピックアップに関する注意事項が記載されています。

列定義にplatformOptions属性配列内のjsonbオプションが含まれていて、trueに設定されている場合に選択します。

platformOptionsは機能していないようです(先頭にobjを追加しようとしましたが、成功しません)。 jsonbフィールドを追加するにはどうしたらいいですか?

おかげで、ダン

+0

(これは同じdoctrine/dbalバージョンのソースでチェックされているようです) – zerkms

答えて

0

使用boldtrn/jsonb-bundle、それはPostgreSQLのjsonbデータ型によって提供される特別な演算子をアクセスするためにjsonb教義の種類だけでなく、カスタム機能を提供します。

1

これはdoctrine/dbal v2.6 +(PHP 7.1が必要)によってサポートされています。あなたがする必要があるのは、私はこれはそれがPHP形式でどのように見えるか

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

であり、それは、そのような(既存の場合と同様のクエリを作成します教義/ DBAL v2.6.3に

これをテストしたjson_arrayを使用してoptions={"jsonb"=true}を設定していますタルブル):

ALTER TABLE mytable ADD details JSONB NOT NULL; 
関連する問題