Проверка ограничения внешнего ключа Codeigniter
Позвольте мне сначала объяснить структуру таблицы:
<code>+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | firstname | varchar(255) | NO | | NULL | | | name | varchar(255) | NO | | NULL | | +-----------+--------------+------+-----+---------+----------------+ </code>
На поле идентификатора ссылаются из другой таблицы через внешний ключ.
Скажем, у меня есть функция в моей модели:
<code>public function delete_user($id) { return $this->db->delete('users', array('id' => $id)); } </code>
Когда на этого пользователя ссылаются из другой таблицы, он должен выдать ошибку. «Плохая» вещь в том, что Codeigniter фактически показывает эту ошибку на полной странице:
<code>Error Number: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`testing`.`users_link`, CONSTRAINT `users_link_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) DELETE FROM `users` WHERE `id` = '1' </code>
Есть ли способ заставить функцию delete_user возвращать FALSE вместо отображения ошибки? Я хотел бы уведомить пользователя, что он должен сделать что-то еще в первую очередь. Я пытался использовать транзакции и возвращать транзакции, но это все равно выдает ошибку.