首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理论,Typo3流:无法使删除级联工作

理论,Typo3流:无法使删除级联工作
EN

Stack Overflow用户
提问于 2015-01-21 06:06:53
回答 1查看 427关注 0票数 0

我有一个模型,当我试图从数据库中删除条目时,它会给我一个错误(因为违反约束)。

错误信息是:

执行‘从pits_docmanager_domain_model_role删除id = ?’时发生异常。使用params 2: SQLSTATE23000:完整性约束违反: 1451不能删除或更新父行:外键约束失败(flow\_db\_pits\_doc\_manager.pits\_docmanager\_domain\_model\_role\_role\_accesspoints\_join,constraint FK\_54B164455C544054 REFERENCES (docmanager\_role)引用pits\_docmanager\_domain\_model) #23000: SQLSTATE23000:完整性约束违反: 1451不能删除或更新父行:外键约束失败(flow\_db\_pits\_doc\_manager.pits\_docmanager\_domain\_model\_role\_role\_accesspoints\_join,constraint FK\_54B164455C544054 FK\_54B164455C544054 (docmanager\_role)引用pits_docmanager_domain_model\)

在我的实体中我有(role.php)

代码语言:javascript
复制
/**
 * @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\AccessPoint> $role_accessPoints
 * @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\AccessPoint",cascade={"remove"})
 * @ORM\JoinTable(name="role_accesspoints",
 * joinColumns={@ORM\JoinColumn(name="access_point_id",referencedColumnName="id")},
 * inverseJoinColumns={@ORM\JoinColumn(name="role_id",referencedColumnName="id")})
 */
protected $role_accessPoints;

另一个文件(accesspoints.php)

代码语言:javascript
复制
/**
 * @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\Role> $accessPoint_roles
 * @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\Role",cascade={"all"})
 */
protected $accessPoint_roles;

即使我在属性中设置了级联选项,也仍然无法删除该条目。

编辑:我想达到的目的是..。

假设我有两个模型(角色和辅助点)。如果删除某个角色,则需要能够删除该角色以及与联接表中的角色相关的相应数据(并且希望将数据保存在可访问点中。)

编辑2:修复(从级联param中删除所有选项并使其工作)

代码语言:javascript
复制
/**
 * @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\AccessPoint> $role_accessPoints
 * @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\AccessPoint",cascade={})
 * @ORM\JoinTable(name="role_accesspoints",
 * joinColumns={@ORM\JoinColumn(name="access_point_id",referencedColumnName="id")},
 * inverseJoinColumns={@ORM\JoinColumn(name="role_id",referencedColumnName="id")})
 */
protected $role_accessPoints;
EN

回答 1

Stack Overflow用户

发布于 2015-03-19 07:43:00

尝试这一点,它将自动删除mm表中删除结果的连列。

代码语言:javascript
复制
/**
 * Result organisation reletion(in Result model)
 *
 * @var \Doctrine\Common\Collections\Collection<\WIND\Alertregistration\Domain\Model\Organization>
 * @ORM\ManyToMany(cascade={})
 * @ORM\Column(nullable=true)
 * @ORM\JoinTable(joinColumns={@ORM\JoinColumn(onDelete="cascade")})
 */
protected $resultOrgRelation;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28060630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档