У меня есть приложение CakePHP 2.0 с базой данных MySQL. Две таблицы базы данных связаны с отношением 1: n и ограничением внешнего ключа. Так что, если я хочу, чтобы удалить запись, которая связана в другой таблице базы данных, я получаю ошибку:CakePHP 2.0 - настроить сообщение об ошибке базы данных
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);
}
}
Так что я могу сделать? Я хочу остаться на этой странице, и я хочу показать только сообщение об ошибке (а не трассировку стека и подобные вещи).
Любая идея?
Я хочу, чтобы справиться с этим в контроллере, а не в представлении. – Tim