我在 Symfony 4 中使用 VichUploaderBundle,我有一个关于使用表单发送一堆照片的问题。为此,我必须使用 CollectionType 和一对多的关系(一个产品有几张照片)。下面我展示的代码只显示了一个空的表单框架,并且它缺少用于添加照片的按钮,因为它们在这个上传器中。我不明白为什么会这样。
产品实体(一对多):
/**
* @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;
图像实体(多对一):
/**
* 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)
;
}
我在哪里可以找到任何解决方案?