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



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

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

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

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

在上述情况下,我们如何显示错误?杂货杂货中有内置的功能吗?否则我们怎么实现呢?(但是当成功插入/编辑/删除一条记录时,杂货库将显示成功的消息)

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

可以在删除前使用回调。

$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对编辑前的回调做同样的操作。

相关内容

最新更新