Переопределение ошибки базы данных CodeIgniter - PullRequest
0 голосов
/ 12 декабря 2011

Я просмотрел многочисленные посты здесь на SO и, черт возьми, погуглил, но ничего из того, что я раскопал, пока не упомянуло ничего конкретного для моей конкретной проблемы. Прошу прощения за кажущуюся избыточность этого вопроса.

У меня есть модель, которая, когда он пытается вставить запись в таблицу, и эта вставка нарушает индексирование уникальных значений, которое есть у меня в определенных полях, CI выдает свое собственное сообщение об ошибке.

Мне интересно, есть ли способ переопределить отображаемые ошибки CodeIgniter, которые он показывает в ошибках базы данных, с помощью моего собственного обработчика, чтобы вместо того, чтобы пользовательский опыт был полностью разрушен ошибкой, я мог просто указать пользователю, что он отправил был дубликат чего-то уже в базе данных.

Теперь я знаю, что мог бы сделать это, просто запустив select для БД и обработав его таким образом, но это кажется совершенно нелогичным для способности базы данных обрабатывать такие вещи с уникальными индексами.

Итак, кто-нибудь нашел способ подключиться к обработке ошибок базы данных в CI и переопределить ее своими собственными реализациями?

Ответы [ 3 ]

1 голос
/ 12 декабря 2011

Проверьте существующее значение перед отправкой запроса, оно не является интуитивно понятным.Вы должны НИКОГДА не полагаться на базу данных для проверки пользователя / вашего ввода .. использовать PHP.

0 голосов
/ 12 декабря 2011

есть файл /application/errors/error_db.php

этот файл отображает сообщение об ошибке. Вы можете сделать что-то здесь.

0 голосов
/ 12 декабря 2011

Я не уверен, как работает обработка ошибок CI, но попробуйте переопределить метод, который отображает ошибку. Я почти уверен, что он находится в system / core / exceptions.php .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...