Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 从一个类别中分配和删除项目_Symfony_Doctrine Orm_Symfony Forms - Fatal编程技术网

Symfony 从一个类别中分配和删除项目

Symfony 从一个类别中分配和删除项目,symfony,doctrine-orm,symfony-forms,Symfony,Doctrine Orm,Symfony Forms,及 基于以上两个问题,我有一个列表,其中包含所有项目的许多复选框。因此,有两个路由/方法没有任何意义:一个用于分配,另一个用于删除项。要使其逻辑正确,分配项和删除项必须在一个方法中-下面的此方法仅用于分配,而不用于删除一个或多个项。在实际应用程序中,一步分配和删除项是唯一有意义的方法(因为复选框) 表格: 这里是完整的一个:(只是太长了,粘贴在这里。) 实体项目: class Item { /** * @var integer * * @ORM\Colu

基于以上两个问题,我有一个列表,其中包含所有项目的许多复选框。因此,有两个路由/方法没有任何意义:一个用于分配,另一个用于删除项。要使其逻辑正确,分配项和删除项必须在一个方法中-下面的此方法仅用于分配,而不用于删除一个或多个项。在实际应用程序中,一步分配和删除项是唯一有意义的方法(因为复选框)

表格:

这里是完整的一个:(只是太长了,粘贴在这里。)

实体项目:

class Item

{
    /**
     * @var integer
     *
     * @ORM\Column(type="guid")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="UUID")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="description", type="text", nullable=true)
     */
    private $description = null;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="Checkout\Bundle\ItemBundle\Entity\ItemCharakter", mappedBy="item", cascade={"persist", "remove"})
     **/
    private $itemCharakters;

    /**
     * @ORM\ManyToOne(targetEntity="Checkout\Bundle\ItemBundle\Entity\Category", inversedBy="items")
     * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
     **/
    private $category;

    /**
     * @ORM\ManyToMany(targetEntity="Checkout\Bundle\ItemBundle\Entity\Tax", inversedBy="items")
     * @ORM\JoinTable(name="Items_Taxes")
     */
    private $taxes;

    /**
     * @ORM\ManyToMany(targetEntity="Checkout\Bundle\ItemBundle\Entity\Modifier", inversedBy="items")
     * @ORM\JoinTable(name="Items_Modifiers")
     */
    private $modifiers;

    /**
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\User")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     **/
    private $user;

    /**
     * @var \DateTime $created_at
     *
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(type="datetime")
     */
    private $created_at;

    /**
     * @var \DateTime $updated_at
     *
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(type="datetime")
     */
    private $updated_at;
完整实体:

. 第一种情况:

Assign Items to Category:
[ ] Item 1
[ ] Item 2
分配全部==>

Assign Items to Category:
[X] Item 1
[X] Item 2
第二:

Assign Items to Category:
[ ] Item 1  // Remove this item 1, after it was assign
[X] Item 2  // Stay assigned
我不是这里的主人。我使用的是symfony2.6.7。在这个例子中,它是一个一对多的关系,但在将来,我也需要它来处理许多关系

知道吗,当我不在拥有方时,这对一个家庭和许多人来说是怎么可能的吗?:-)


我还在添加项目部分遵循了本指南:-这有助于澄清。

请展示您的表单和实体。如何使您的关系成为双边关系?这种关系是双边的-当我在拥有方时,它是有效的(通过编辑项目,将类别从选择添加到一个项目)@德斯托菲尔:更新的问题。在类别实体的第145->152行,$items->setCategory($this);应位于$this->items[]=$items;-这可能会也可能不会导致你的问题,但肯定不会有帮助。
Assign Items to Category:
[ ] Item 1
[ ] Item 2
Assign Items to Category:
[X] Item 1
[X] Item 2
Assign Items to Category:
[ ] Item 1  // Remove this item 1, after it was assign
[X] Item 2  // Stay assigned