Doctrine orm 级联删除不起作用。级联={quot;删除";}
我使用的是教义2。我有一个自我连接的实体。联接中的两列是:Doctrine orm 级联删除不起作用。级联={quot;删除";},doctrine-orm,cascade,Doctrine Orm,Cascade,我使用的是教义2。我有一个自我连接的实体。联接中的两列是: /** * @ORM\ManyToOne(targetEntity="Entities\wall_post", inversedBy="shared_wallpost") * @ORM\JoinColumn(name="wall_post_id", referencedColumnName="id") */ private $shared_from_wallpost; /** * @ORM\OneToMany(targetEn
/**
* @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(有
墙柱(id=1001)
现在我想当我删除1001时,带有wall\u post\u id 1001的帖子会被删除
删除
为此,我使用cascade={“remove”},但它不起作用。
我要删除wallpost对象的查询:
//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();
对于级联={“删除”} 我们必须使用:
$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();
现在级联删除正在工作。映射看起来正常。删除后是否刷新实体管理器?@manix我已添加我的查询以删除我的答案中的对象请查看。我正在使用$em->flush;但是没有用。谢谢。我不知道为什么您当前的代码不起作用,但您可以尝试将
onDelete=“CASCADE”
作为一个示例alternative@FuzzyTree我也试过了。但是没有成功。谢谢你们的意见,伙计们!更改$qb_1->setParameter('1',$wallpost_id)代码>至$qb_1->设置参数(1,$wallpost_id);