如何在 cakePHP 3 中使用外键删除值?

How to delete value with foreign key in cakePHP 3?

我正在使用 cakePHP 3。我正在尝试从 table 中删除数据。但是这个数据与另一个 table 作为外键有关系。如果数据 ID 不存在于另一个 table 上,则数据删除成功。但问题是,如果数据 ID 在另一个 table 上可用,则会显示错误。错误类似于 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) REFERENCESusers(id))。 假设我有 user table。和 post table。现在 post table 有一个名为 user_id 的列。现在,当我尝试删除一个用户时,如果该用户 ID 不作为外键存在于 post table 中,那么它会毫无错误地删除。 但是,如果用户 ID 出现在 post table 中并且我尝试删除用户,那么它会显示错误。 这是 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 cascade delete not working

我刚刚在 UsersTable.php

中添加了这些代码
$this->hasMany(
        'post', [
            'foreignKey' => 'user_id', 
            'dependent'  => true,
            'cascadeCallbacks' => true
        ]
    );