Как я могу отобразить ошибки контроля ввода CakePHP в другом месте значение по умолчанию?

Скажем, у меня есть поле, которое похоже на это в представлении:

<li class="bigfield">
  <?php echo $form->input('phone', array(
      'placeholder' => 'Phone',
      'label' => false,
      'between' => '<br />'
  )); ?>
</li>

Если у меня есть правило проверки об этом поле и сбоях проверки, я вижу следующий HTML:

<li class="bigfield">
  <div class="input text required error">
      <br>
      <input name="data[Appointment][email]" type="text" placeholder="Email" 
             maxlength="45" value="" id="AppointmentEmail" class="form-error">
      <div class="error-message">Please enter a valid email address</div>
  </div>
</li>

Я похож, чтобы сделать что-то, любят, перемещаются, отделение сообщения об ошибке ко всей другой части страницы скорее затем имеют его внутри с тем же <литий> как само поле. Каков был бы самый прямой способ сделать это?

20
задан bancer 24 February 2013 в 17:19
поделиться

1 ответ

В вашем контроллере :

$this->set('validationErrorsArray', $this->ModelName->invalidFields());

В ваших представлениях будет $ validationErrorsArray .


ОБНОВЛЕНИЕ (сентябрь 2014 г.):

Из представления

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

$this->validationErrors;

Из контроллера

Если вы пытались чтобы сохранить данные в контроллере, вы можете получить доступ к ошибкам проверки следующим образом:

$this->ModelName->validationErrors;

Если вы хотите проверить данные перед сохранением, сделайте это следующим образом:

$this->ModelName->set($this->request->data);
if ($this->ModelName->validates()) {
    $this->ModelName->save();
} else {
    $errors = $this->ModelName->validationErrors;
    // handle errors
}

Проверка данных из контроллера

22
ответ дан 29 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: