【问题标题】:How to building an onError() that will catch an error message on cakephp?如何构建一个 onError() 来捕获 cakephp 上的错误消息?
【发布时间】:2014-01-08 20:27:20
【问题描述】:

我不会体验 cakephp 或编程,但我想做的是从数据库中删除一条记录,并在删除时重定向到同一页面,如果您因为外键约束而无法删除记录通过错误:

SQL 错误:1451:无法删除或更新父行:外键约束失败

并重定向到同一个页面,并为用户提供一个很好的错误消息。而不是上面的错误信息。

enter code here

我能够完成删除部分,但是当我无法删除记录时,我无法绕过错误消息 SQL Erro: 1451

这是我的功能

    function admin_delete ($id, $residence_hall_id){
        if ($this->ResidenceHall->delete($id))  {
            $this->Session->setFlash('Item was deleted', 'success');
        }else{
            $this->Session->setFlash('Item was not deleted', 'error');
        }
        $this->redirect(array('controller'=>'residence_halls', 'action'=>'index', $residence_hall_id, 'admin'=>true));
    }

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: php sql cakephp


    【解决方案1】:

    使用 deleteAll() 或从 residanceHall 模型表中删除数据库外键约束。 AS delete all 将删除与该模型关联的所有记录。您收到此错误只是由于其他表中有一些记录,其 id 用于与参考表关联。

    【讨论】:

    • 我认为我问的问题不正确,但我得到了它的工作。所以在模型下我添加了 var $hasMany = array('Resident');这让它发挥作用。感谢您的宝贵时间。
    猜你喜欢
    • 2018-06-04
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2017-11-07
    • 2018-01-16
    相关资源
    最近更新 更多