Я нашел решение, добавив эти методы в мой класс AppModel:
function validates($options = array()) {
$result = parent::validates($options);
if (!$result) {
$this->_validateErrors();
}
return $result;
}
function _validateErrors() {
foreach ($this->validationErrors as $code) {
$this->cakeError('apiError', array('code' => $code)); // Custom JSON error.
return;
}
}
Затем я вручную вызываю $ this-> Model-> validates () перед вызовом Model :: save () в моем контроллере. Кажется, это работает хорошо.