如何在蛋糕PHP 3中使用外键删除值?



我正在使用cakePHP 3。我正在尝试从表中删除数据。但是此数据与作为外键的另一个表有关系。如果另一个表中不存在数据 ID,则数据删除成功。但问题是,如果数据 ID 在另一个表上可用,则会显示错误。错误就像SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails ('project'.'post', CONSTRAINTpost_ibfk_1FOREIGN KEY (user_id) REFERENCES用户(ID))。 假设我有user表。还有post桌子。现在post表中有一个名为user_id的列。现在,当我尝试删除一个用户时,如果该用户 ID 没有作为外键存在于表中post那么它会删除而不会出错。 但是,如果表中存在用户 IDpost并且我尝试删除用户,那么它会显示错误。 这是 mt 删除按钮代码

<?php
echo $this->Html->link(
__($this->Html->tag('i','', array('class' => 'fa fa-trash text- 
inverse m-r-10'))),                                              
['controller'=>'User', 'action' => 'deleteUser', $user->id],
['escape' => false,'data-toggle' => 'tooltip', 'data-original-title' => 'Delete']);?>

这是我的控制器删除功能

public function deleteUser($id)
{
$user= $this->User->get($id);
$this->User->delete($user);
}

我发现解决方案cakephp 3.x级联删除不起作用。

我刚刚在我的UsersTable.php中添加了这些代码

$this->hasMany(
'post', [
'foreignKey' => 'user_id', 
'dependent'  => true,
'cascadeCallbacks' => true
]
);

最新更新