選択フィールド (はいまたはいいえ) としてフォームに入力したブール フィールドがあります。データトランスフォーマーなしで0または1を取得します。ビュー BooleanToStringTransformer を追加しました(これは合理的だと思われました):
$builder
->add(
$builder->create('myBooleanField', 'choice', array(
'choices' => array(true => 'Yes', false => 'No'),
))
->addViewTransformer(new BooleanToStringTransformer('1'))
)
フォームを表示しようとすると、「ブール値が必要です。」というエラーが表示されます。ただし、フォームを作成する前に、フィールドが false に設定されています。
モデル トランスフォーマーとして設定しようとしました。フォームは表示されますが、送信すると、フィールドが無効であると宣言されます。
私は何を間違っていますか?
編集:私はほとんどそれを手に入れました。
- ビュー トランスフォーマーの代わりにモデル トランスフォーマーを使用しました (選択フィールドは、ブール値ではなく、文字列または整数で機能します)
- 選択リストを から に変更し
array(true => 'Yes', false => 'No')
ましたarray('yes' => 'Yes', 'no' => 'No')
したがって、コードは次のようになります->addModelTransformer(new BooleanToStringTransformer('yes'))
選択した値に関係なく、フィールドが常に true に設定されていることを除いて、データ変換は機能します。
どうしたの?