Я работаю с cakephp версии 2.0.2 и ломал голову над тем, почему при отправке формы, которая передает данные в ассоциацию моделей, не выявляются сообщения об ошибках для ассоциаций.
Я копался в классе Model для дальнейшей диагностики. Я обнаружил, что если бы основная модель для формы имела свои собственные ошибки проверки, то в возвращаемых результатах не было бы ошибок проверки для каких-либо связей:
$this->validationErrors
Но я думаю, что нашел дымящийся пистолет. В методе validateAssociated
Model.php вы увидите это:
$this->validationErrors = $validationErrors;
if (isset($validationErrors[$this->alias])) {
$this->validationErrors = $validationErrors[$this->alias];
}
В первой строке задается $this->validationErrors
, которая содержит все ошибки, возникающие во всех ассоциациях. Но если $validationErrors
содержит ошибки для ключа $this->alias
, который является основным именем модели, то, как вы видите, $this->validationErrors
перезаписывается именно на эти ошибки.
Так что возникает вопрос .... почему? Я уверен, что это ошибка. Я хочу изменить свой Model.php и думаю, что это сработает. Но я хотел показать это другим, если я сделаю что-то действительно глупое.