我正在开展一个项目,我需要有一个团队和锦标赛的注册表。一个团队可以参与许多比赛,因此是一个多对多的关系。
所以在symfony中,我只为这种多对多关系创建了两个实体:团队和RgTournaments。
我的问题是如何使用doctrine从单个查询中删除所有当前关系(截断表rg_teams_to_tournaments)?
我找到的唯一方法是here,但我想避免加载所有条目,以便逐个删除它们。
答案 0 :(得分:1)
使用DQL。
DELETE FROM RelatedEntity WHERE fk = :id
或者您可以使用QueryBuilder构建相同的基本想法
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html
如果您没有实际实体,请对集合使用 - > clear()方法。你找到主要实体(例如团队),然后像$ myTeam-> tournaments-> clear();然后冲洗。
答案 1 :(得分:0)
如果您想要做的只是闪现整个表格,您可以使用原始SQL。
快/脏但有效。
$entityManager->getConnection()->executeQuery('delete from your_many_to_many_join_table');