プリエンファシスされた非エンティティフォームのコレクションを埋め込みたい、ここにコードがあります。最初は親フォームbuildFormメソッドです。symfony2に非エンティティフォームのプリチャージコレクションを埋め込む方法
今public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add("example1")->add("example2");
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
/*some logic to do before adding the collection of forms*/
$form->add('aclAccess', 'collection', array(
'type' => new ChildFormType(),
'allow_add' => true,
'mapped' => false,
'data' => /* I dont know how to precharge a collection of non-entity forms*/
));
});
}
子フォーム
public function buildForm (FormBuilderInterface $builder, array $options) {
$builder->add("test1", "text", array("read_only" => true, "data" => "test"));
$builder->->add("test2", "choice", array(
'choices' => array('opt1' => 'Opt1', 'opt2' => 'Opt2'),
'multiple' => true,
'expanded' => true
));
}
のでbasicly私は私が知っている、各オプショングループがtest1のフィールドの値に依存し、分離形態としてTEST2分野におけるそれらの子のオプションを管理したいですこれは、フォームクラスなしで小枝ですべてをコーディングすることによって行うことができますが、私はフォームクラスを保守性などのphpunitテストを実行するベストプラクティスと思っています...