【发布时间】:2018-04-03 13:40:18
【问题描述】:
我有那个构造函数
/**
* User constructor.
*/
public function __construct()
{
$this->projectUser = new ArrayCollection();
$this->skills = new ArrayCollection();
$this->goals = new ArrayCollection();
$this->technicalReferentOf = new ArrayCollection();
parent::__construct();
}
并且technicalReferentOf 变量是动态声明的。
它链接到只包含外键的那个表:
user_id |project_id |
--------|-----------|
46 |3 |
46 |13 |
69 |3 |
但是当我想删除一个用户时,我有一个外键错误,我无法通过级联删除来解决,因为没有字段。
解决这个问题的正确方法是什么?提前致谢
【问题讨论】:
-
那么,当特定的
User被删除时,您想删除所有用户的项目吗?我认为您需要在连接表的数据库层上有一个CASCADE... -
不只是用户:/问题需要信息?
-
好吧,这让事情变得更清楚了。正如我所说,您的联接表上需要有一个
CASCADE。CASCADE不适用于project表,而仅适用于连接表(即密钥对(user_id, project_id))。密钥对将被删除,但项目将保持不变... -
好吧,我开始明白了。但是我在哪里指定呢?我需要在我的用户类上添加一个字段吗?
-
酷,我做到了;)
标签: php symfony doctrine symfony-2.8