首页 > 解决方案 > Symfony 4 在 EntityType 中添加 4 个输入类型文件

问题描述

我有实体Boisson与实体ImageoneToMany 我必须添加 4 个图像,例如Boisson

实体Boisson

/**
 * @ORM\OneToMany(targetEntity="App\Entity\Image", mappedBy="boisson")
 */
private $images;

/**
 * @return Collection|Image[]
 */
public function getImages(): Collection
{
    return $this->images;
}

public function addImage(Image $image): self
{
    if (!$this->images->contains($image)) {
        $this->images[] = $image;
        $image->setBoisson($this);
    }

    return $this;
}

public function removeImage(Image $image): self
{
    if ($this->images->contains($image)) {
        $this->images->removeElement($image);
        // set the owning side to null (unless already changed)
        if ($image->getBoisson() === $this) {
            $image->setBoisson(null);
        }
    }

    return $this;
}

结束我的BoissonType

$builder
    ->add('user',EntityType::class, [
        'class' => User::class,
        'query_builder' => function (UserRepository $er) {
            return $er->createQueryBuilder('u');
        },
        'choice_label' => 'username'])
    ->add('nom')
    ->add('prix')
;

如何获得 4 个输入类型文件以将我的图像添加到我的 boisson

标签: phpsymfonysymfony4

解决方案


嵌入表单时,如果您有一对多关系,“多”意味着您必须在“一个”Boisson 表单中使用 CollectionType,如下所示。

$builder->add('images', CollectionType::class, [
    'entry_type' => ImageType::class,

]);

在此处查看文档:有关此类字段配置的更多信息。


推荐阅读