0

これに関連する多くの質問を見てきましたが、私のニーズに合った質問が見つからないようです。私の問題を解決する最も近い答えは、バインド前のイベントを使用して選択リストに選択肢を追加することです。これに関する問題は、ユーザーが追加した選択肢を知る方法がないことです。

フロントエンドには、ユーザー入力に基づいて選択肢フィールドにオプションを追加する javascript / jquery があります。シンプルにするために、ユーザーがhello world入力ボックスに入力すると、オプションが選択肢フィールドに値として設定されますhello-world

ユーザーが入力した情報は、マップされたエンティティ列に保持されず、表示目的でのみ使用され、その後破棄されます。ただし、フォームの残りの部分を検証する必要があります。

また、このフォームは、次を使用してコントローラーで動的に生成されます。

$this->get('form.factory')->createNamedBuilder();

TLDR: フォーム ファクトリの createNamedBuilder を使用して生成された単一選択フィールドの検証を無効にする必要があります

4

1 に答える 1

1

あなたはこのようなことを試しました:

$req = $this->getRequest();

$submittedOptions = array();

if ( $req->isMethod("POST")){
    $submittedOptions = $req->request->get('name_of_the_choice_field');
}

$this->get('form.factory')->createNamedBuilder()
    ....
    ->add('name_of_the_choice_field', 'choice, array(... , 'choices' => $submittdOptions, ... )
    ....
于 2013-11-01T11:30:19.817 に答える