簡體   English   中英

如何用 Symfony 表單中的新實體填充 OneToMany 關系?

[英]How is it possible to fill a OneToMany relationship with new entities in Symfony forms?

我想為名為Order實體創建一個表單:

/** @ORM\Entity */
class Order {
    //...
    /**
     * @ORM\OneToMany(targetEntity=Entry::class, mappedBy="order", orphanRemoval=true)
     */
    private $entries;
    //...
}

Entry類如下所示:

/** @ORM\Entity */
class Entry {
    //...
    /**
     * @ORM\ManyToOne(targetEntity=Product::class)
     * @ORM\JoinColumn(nullable=false)
     */
    private $product;

    /**
     * @ORM\Column(type="integer")
     */
    private $count = 0;
    //...
}

我已經為Entry定義了一個類型。

一個Order有多個Entry 我希望可以在創建Order的同一表單中創建條目。 我不能將EntityType'multiple' => true ,因為Entry實例在Order之前不存在。

您可以使用CollectionType::class嵌入另一個表單。 創建一個EntryType表單並將其添加到帶有CollectionType字段的OrderType表單中。 添加一個allow_add屬性並查看文檔以了解如何顯示表單。

如果你想持久化/刷新所有實體,你必須在你的關系中添加一個 `cascade={'persist'}。

這可以通過 symfony 使用嵌入形式輕松完成。

關於如何使用它有很多話要說,所以這里是:

從實體創建到 html 實現的完整示例一步一步

symfony 手冊:如何嵌入表單集合

和 symfony doc : How to Embed a Collection of Forms

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM