私はFOSRestBundleを使用しています。FormTypeのチェックボックスとして定義されたいくつかのフィールドにnullを保存できるようにPOSTを設定しようとしています。symfony2でnullable booleanを追加するにはどうすればいいですか?
私のエンティティは、注釈NULL可能=真
/**
* @ORM\Column(type="boolean", nullable=true)
*/
protected $foo_bar;
(それはほとんどdeaultsに残っているだけなので、これまでのAPIを介して使用されます)にformTypeが偽
$builder->add('foo_bar', 'checkbox', array(
'required' => false
));
に設定が必要であったました
私が保存してfoo_barはがnullの場合は、それは私が必要とするデータベースで0
$entityData = $request->request->all();
$entityData['foo_bar'] = null;
$entity = $this->container->get('acme.entity.handler')->post($entityData);
として保存されます 私は:ヌル(答えではない)のではなく、0が
編集(ハンドラはここでそれはちょうどその持続にformTypeに対してポストされたデータを検証していますhttp://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/からである)(偽答え)としてfoo_barは保存しますFormTypesがnullableブール値を処理できるかどうかは不明です。この質問に対する応答に基づくテストでは、falseをnullまたはnullとしてfalseに保存します。今のところ、リンクされたポストで説明されているようにハンドラの使用をやめ、代わりに手動で検証し、エンティティマネージャに直接保持することに決めました。
foo_barカラムが存在するテーブルに 'explain table_name'を表示できますか? – Drmjo
どうすればいいですか? – Alec
説明> "foo_bar | tinyint(1)| YES | MUL | NULL"ですので、doctrineが正しく作成しました。 – mike