Symfony 4 で VichUploaderBundle を使用していますが、フォームを使用して大量の写真を送信する方法について質問があります。これを行うには、CollectionType と 1 対多の関係を使用する必要があります (1 つの製品に複数の写真があります)。以下に、フォームの空のフレームのみを表示するコードを示します。このアップローダーには、写真を追加するためのボタンがありません。なぜこれが起こっているのかわかりません。
製品エンティティ (1 対多):
/**
* @var ProductMultiImage[]
* One Product has Many Images.
* @ORM\OneToMany(targetEntity="App\Entity\Image\ProductMultiImage", mappedBy="product", cascade={"persist"})
* @ORM\JoinColumn(nullable=true)
*/
private $productMultiImages = null;
イメージ エンティティ (多対 1):
/**
* Many Images have One Product.
* @ORM\ManyToOne(targetEntity="App\Entity\Admin\Product", inversedBy="productMultiImages", cascade={"persist"})
* @ORM\JoinColumn(name="product_id", referencedColumnName="id", nullable=true)
*/
private $product = null;
写真追加フォーム:
class ProductImageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('productMultiImages', CollectionType::class, array(
'data_class' => ImageType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => null,
]);
}
}
画像タイプ:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('imageFile', VichImageType::class)
;
}
どこで解決策を見つけることができますか?