私はクラスフォームを持っています:
class MyForm extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options = array())
{
$builder->add('types', 'choice', array(
'choices' => $options['data']['types'],
'required' => false,
'multiple' => true,
'expanded' => true,
));
$builder->add('dateFrom', 'date', array(
'years' => range(date('Y') - 5, date('Y')),
'required' => false,
));
}
}
私のコントローラーでは、次のことを行います。
$form = $this->createForm(new TransSearchForm, array(
'types' => $myCheckboxArray
));
// getting form data from required
$data = $this->getRequest()->get($form->getName());
/*... some changes dateFrom param in $data array ...*/
$form->setData($data);
そして、チェックされたチェックボックスがチェックされていません(しかし、私が使用する場合
$form->bindRequest($this->getRequest());
すべて正常に動作しています - チェックされたチェックボックスがチェックされています。しかし、私のdateFromパラメータは変更されていません...
1) dateFrom パラメータを手動で変更する 2) フォームの送信後にチェックボックスを表示する
bindRequest または setData の使用 - 問題ありません。誰か助けてくれませんか?