У меня есть приложение CakePHP 2.0 с базой данных MySQL.Две таблицы базы данных связаны отношением 1: n и ограничением внешнего ключа.Поэтому, если я хочу удалить запись, которая связана с другой таблицей базы данных, я получаю сообщение об ошибке:
Error: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a forein key constraint fails (...)
SQL Query: DELETE 'Test' FROM 'tests' AS 'Test' WHERE 'Test'.'id' = 10
Notice: If you want to customize this error message, create app/View/Errors/pdo_error.ctp
Но я хочу обработать сообщение об ошибке!Я читал кое-что о 'onError', но помещая его в 'AppModel', он, кажется, не вызывается (может, он работает только с CakePHP 1.3?):
class Test extends AppModel {
function onError() {
echo "TESTTESTTEST";
$db = ConnectionManager::getDataSource('default');
$err = $db->lastError();
$this->log($err);
$this->log($this->data);
}
}
Так что я могу сделать?Я хочу остаться на этой странице и показать только сообщение об ошибке (не трассировка стека и тому подобное).
У кого-нибудь есть идея?