代码之家  ›  专栏  ›  技术社区  ›  Always_a_learner

级联删除不起作用。级联={“remove”}

  •  0
  • Always_a_learner  · 技术社区  · 9 年前

    我使用的是教义2。我有一个实体,在那里我有自我加入。连接中的两列为:

    /**
     * @ORM\ManyToOne(targetEntity="Entities\wall_post", inversedBy="shared_wallpost")
     * @ORM\JoinColumn(name="wall_post_id", referencedColumnName="id")
     */
    private $shared_from_wallpost;
    
    /**
     * @ORM\OneToMany(targetEntity="Entities\wall_post", mappedBy="shared_from_wallpost", cascade={"remove"})
     */
    private $shared_wallpost;
    

    假设有两个帖子:一个id=1001秒id=1002(具有 wall_post_id=1001)

    现在我想当我删除1001时,用wall_post_id 1001发布 删除。

    为此,我使用cascade={“remove”},但它不起作用。 我要删除墙贴对象的查询:

    //Removing record from table.
    
        $qb_1 = $em->createQueryBuilder();
                    $qb_1->delete('\Entities\wall_post', 'wp');
                    $qb_1->where( 'wp.id  = ?1' );
                    $qb_1->setParameter('1', $wallpost_id );
                    $qb_1->getQuery()->execute();
                    $em -> flush();
    
    1 回复  |  直到 9 年前
        1
  •  0
  •   Always_a_learner    9 年前

    对于级联={remove} 我们必须使用:

    $em->remove($wallpost_obj);
                $em->flush();
    

    我用过:

     $qb_1 = $em->createQueryBuilder();
                    $qb_1->delete('\Entities\wall_post', 'wp');
                    $qb_1->where( 'wp.id  = ?1' );
                    $qb_1->setParameter('1', $wallpost_id );
                    $qb_1->getQuery()->execute();
                    $em -> flush();
    

    现在级联移除正在工作。