1

これまでのところ、formbuilderを使用してエンティティに関連するフォームのみを作成しました

私は通常これを行います

$builder->add("tasks")

それから私はこれをします

$Form = $this->createForm(new TaskType(), $entity);

ここで、データベースからエンティティをロードできる選択ボックスがある汎用フォームが必要です。

私はそのフォームを永続化またはバインドしていません。ユーザーがユーザーを選択して送信を押すと、そのユーザーページに移動します。

上記のフォームでは、ユーザーエンティティのプロパティとしてタスクを使用していたため、addを使用しました。

しかし、ユーザーにリンクされていないタスクを表示したいだけです。

$form = $this->createFormBuilder($task)
        ->add('task', 'text')
        ->add('dueDate', 'date')
        ->getForm();

上記のコードの例iはそれを行うことができます

$form = $this->createFormBuilder()
        ->add('task', 'text')
        ->add('dueDate', 'date')
        ->getForm();
4

1 に答える 1

1

読む前に、何もしないのに a を表示するのはなぜ<select>ですか? たぶん、あなたが望むものを達成するためのより良い解決策があるでしょう:)

とにかく、フォームにエンティティ プロパティに関連しないフィールドがある場合は、オプションproperty_pathを に設定してfalseください。<select>ot タスクを表示したいと仮定すると、次のようになります。

$this->createFormBuilder()
    ->add('task', 'entity', array(
        'property_path' => false,
        'class'         => 'Acme\HelloBundle\Entity\Task', // Full/short FQCN
        'property'      => 'name', // Assuming your task as a property "name",
    ))
;

そして、何らかの理由で選択された値(選択されたオブジェクトを意味する)が必要な場合は、それをリクエストにバインドした後、 でTask取得できます。$form->get('task')->getData()

于 2012-08-09T09:08:37.677 に答える