У меня есть форма, которая собирает информацию из нескольких моделей, которые находятся в нескольких слоях друг от друга в своей ассоциации.По этой причине я должен сохранить каждое из них по отдельности и, в случае сбоя, отчитаться в представлении, чтобы могли отображаться сообщения об ошибках.Я полагаю, что из-за последовательного сохранения ошибки не отображаются правильно, и я не обнаружил, что метод isFieldError()
определяет наличие ошибки.
Любая идея, как получить доступ к этим данным вуровень просмотра для проверки на ошибку?Я хотел бы проверить все 3 модели, чтобы я мог отображать все ошибки одновременно, а также избегать создания ручной структуры данных и тестирования для этого.Есть ли какие-то собственные функции / данные Cake, к которым я могу получить доступ, так что это не полностью индивидуальное решение, которое я не могу использовать в более традиционных случаях?
# Controller snippet
if( $this->Proposal->Requestor->saveField( 'phone_number', $this->data['Requestor']['phone_number'] ) && $this->Proposal->Requestor->Building->saveAll( $this->data ) ) {
# Save off the proposal and message record.
exit( 'saved' );
}
else {
$this->Session->setFlash( 'We can\'t send your quote just yet. Please correct the errors below.', null, null, 'error' );
# At this point, I may have 2 or more models with validation errors to display
}
# Snippet from an element loaded into the view
# $model = Requestor, but the condition evaluates to false
<?php if( $this->Form->isFieldError( $model . '.phone_number' ) ): ?>
<?php echo $this->Form->error( $model . '.phone_number' ) ?>
<?php endif; ?>
Спасибо.