我有两张桌子:
当我尝试删除product_categories
时,它会显示以下错误:
SQLSTATE[23000] Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
如果错误,我想设置会话闪存吗?
答案 0 :(得分:0)
如果没有您编写的实际代码,很难回答,但这是基于您分享的内容很少的通用答案。有关详细信息,请访问Cake网站this link
假设你是从控制器中调用它
if ($this->ProductCategory->deleteAll(array('conditions' => array('id' => $someId)) {
// do something else - set success flash message
$this->Session->setFlash('Something good.', 'default', array(), 'good');
} else {
// error occurred
$this->Session->setFlash('Something bad.', 'default', array(), 'bad');
}
您还可以通过在上面的delete语句中设置其他参数来将删除级联到子表 - 这也可以在同一链接中找到。如果你要级联删除,那么语句将如下所示 - 注意TRUE作为第二个参数
if ($this->ProductCategory->deleteAll(array('conditions' => array('id' => $someId), true) {
// do something else - set success flash message
$this->Session->setFlash('Successfully deleted the Product Category', 'default');
} else {
// error occurred
$this->Session->setFlash('Cannot delete Product Category. Some Products are still using this Category.', 'default');
}
另外我建议您不要在数据库中强制执行完整性约束 - 没有任何问题,但它会使您的逻辑更复杂。