【问题标题】:GROCERY CRUD : Display error message when updating database is failedGROCERY CRUD : 更新数据库失败时显示错误消息
【发布时间】:2014-05-12 21:00:03
【问题描述】:

首先这篇文章不是关于表单验证(javascript),而是关于数据库约束的验证..

当我通过添加表单添加数据时,由于我在创建数据库时初始化的数据库约束(例如复制主键),数据库不会更新。在这种情况下,杂货店添加表单将不显示任何错误。但只是一直显示 ajax 加载器图像。

当我通过编辑表单编辑数据时,由于我在创建数据库时已初始化的数据库约束(例如更新约束上的外键),有些情况数据库不会更新。在这种情况下,杂货店添加表单不会显示任何错误。但只是一直显示 ajax 加载器图像。

当我尝试从杂货店 crud 表中删除一条记录时,在某些情况下,由于我在创建数据库时已初始化的数据库约束(例如删除约束上的外键),数据库不会删除该记录。在这种情况下,杂货杂货不会显示任何错误并且什么也不做。

在上述情况下,我们如何显示错误?杂货杂货中有没有内置功能?否则我们该如何实施? (但是当一条记录插入/编辑/删除成功时,grocery crud会显示成功的msg)

这很重要,否则用户会认为数据库由于我们的编码错误而没有更新

【问题讨论】:

    标签: php codeigniter error-handling grocery-crud


    【解决方案1】:

    你可以在删除前使用回调。

    $crud->callback_before_delete(array($this,'cek_before_delete'));
    $crud->set_lang_string('delete_error_message', 'This data cannot be deleted, because there are still a constrain data, please delete that constrain data first.');
    
    
    function cek_before_delete($primary_key) {
        $this->db->db_debug = false;
        $this->db->trans_begin();
        $this->db->where('id', $primary_key);
        $this->db->delete('table_name');
        $num_rows = $this->db->affected_rows();
        $this->db->trans_rollback();
        if ($num_rows > 0) {
            return TRUE;
        } else {
            return FALSE;
        }
    }
    

    然后你也可以在编辑前使用 $crud->callback_before_update 对回调执行相同的操作。

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2019-11-01
      • 2013-05-04
      • 2019-11-01
      • 1970-01-01
      • 2021-01-19
      相关资源
      最近更新 更多