0

AcmePizzaBundle のコードを例として使用して、2 つのエンティティを持つフォームを作成しました。

フォームのMyBundle/Entity/Factory/UploadFactory.phpファクトリ クラスです。2 つのエンティティ (User と Video) に加えて、3 つ目の UploadType.php フォーム クラスがあります。

// MyBundle/Form/Type/UploadType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('user', new UserType())
            ->add('video', new VideoType());
}

UserType()VideoType()はフォーム タイプ クラスであり、それぞれのエンティティから必要なフィールドを保持します。

上記はコントローラー/メソッドから呼び出されます。

public function indexAction(){
  // create upload
  $factory = new UploadFactory();

  $form = $this->createForm(new UploadType(), $factory);
}

User エンティティと Video エンティティには、注釈付きの検証があります。これは、2 つのフォームをマージする前は問題なく機能していましたが、現在はサーバー側の検証はありません。

検証が実行されていないと思いますが、これを強制する方法はありますか?

このコードは、ピザ バンドルのコードhttps://github.com/beberlei/AcmePizzaBundle/blob/master/Entity/Factory/OrderFactory.phpに「触発された」ものです。

ありがとう。

編集:

$factory = new UploadFactory();
var_dump($factory);

// gives...
object(Project\MyBundle\Entity\Factory\UploadFactory)#101 (3) {
  ["user":"Project\MyBundle\Entity\Factory\UploadFactory":private]=> NULL
  ["video":"Project\MyBundle\Entity\Factory\UploadFactory":private]=> NULL 
}
4

0 に答える 0