我已经浏览了SO上的众多帖子,并搜索了这一点,但我发掘的所有内容都没有提到我确切问题的具体内容。所以,请原谅这个问题看似多余的性质。
我有一个模型,当它试图将记录插入表中并且该插入违反了我在某些字段上的唯一值索引时,CI会抛出它自己关于错误的错误消息。
我想知道是否有办法覆盖CodeIgniter显示的错误,它显示在我自己的处理程序的数据库错误上,这样我就可以简单地向用户表明他们提交了什么,而不是用户的体验完全被错误所破坏。是数据库中已有内容的副本。
现在,我知道我可以通过对数据库运行select并以这种方式处理它来做到这一点,但这似乎完全违反了数据库本身能够使用唯一索引处理这些事情的能力。
那么,有没有人找到一种方法来挂钩CI中的数据库错误处理并用自己的实现覆盖它?
答案 0 :(得分:1)
在提交查询之前检查现有值,这不违反直觉。您应该从不依赖数据库来验证用户/您的输入..使用PHP。
答案 1 :(得分:0)
有一个文件/application/errors/error_db.php
此文件显示错误消息。你可能想在这里做点什么。
答案 2 :(得分:-1)
我不确定CI错误处理的工作原理,但请尝试覆盖显示错误的方法。我很确定它位于 system / core / exceptions.php 。