GROCERY CRUD:更新数据库失败时显示错误消息

时间:2014-05-12 21:00:04

标签: php codeigniter error-handling grocery-crud

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

当我通过添加表单添加数据时,有些情况下数据库不会因为数据库限制而更新,我在制作数据库时已初始化(例如复制主键)。在这种情况下,杂货店crud添加表单将不显示任何错误。但只是继续显示ajax加载器图像。

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

当我尝试从杂货店crud表中删除一条记录时,有些情况下数据库不会因为我在数据库创建时初始化的数据库约束而删除该记录(例如删除约束时的外键)。在这种情况下,杂货店不会显示任何错误,也不会做任何事情。

在上述情况下,我们如何显示错误?杂货店里有没有内置功能?否则我们如何实施? (但是当成功插入/编辑/删除记录时,杂货店将显示成功的消息)

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

1 个答案:

答案 0 :(得分:2)

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

$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进行编辑之前进行回调。