CakePHP: метод onError в AppModel не вызывается при возникновении ошибки sql - PullRequest
1 голос
/ 24 ноября 2011

Я добавил метод onError в AppModel следующим образом:

class AppModel extends Model {
    function onError() {
        $db = $this->getDataSource();
        $err = $db->lastError();
        $this->log("AppModel.onError: $err");
    }
}

Внутри моего контроллера матчей у меня есть:

function admin_create() {
    $this->Match->query('SELECT bang FROM');
}

Когда я захожу в / admin / controllers / создаю его, получаюследующая ошибка в файле журнала, но ничего из кода в методе onError.

2011-11-24 20:50:43 Предупреждение: предупреждение (512): Ошибка SQL: 1064: у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'в строке 1 в [/home/larry/workspace/cbhk/cake/libs/model/datasources/dbo_source.php, строка 684]

Кроме того, когда я устанавливаю точку останова в admin_create, она достигается, но точки останова в onError не могут быть достигнуты.Есть идеи как идеи?

1 Ответ

1 голос
/ 24 ноября 2011

Я не верю, что обратный вызов onError выполняется при использовании метода query () в модели - в случае ошибки SQL выдается только исключение.

РЕДАКТИРОВАТЬ:

Извините, я должен был привести пример того, как вы можете обработать ошибку:

  try {
    $this->Match->query('SELECT bang FROM');
  } catch (Exception $e) {
  /**
   * Catch the exception - do your error handling here
   */
  }
...