Как проверить дополнительное поле в форме?CakePHP - PullRequest
4 голосов
/ 20 сентября 2010

Я создаю форму с флажком «Соглашение».Пользователь должен щелкнуть это, чтобы подтвердить, что он согласен с соглашениями.Но как мне добавить это к проверке?Могу ли я сделать это из модели?Это поле, которого нет в базе данных.

Я застрял здесь.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2010

Вы можете проверить поле вручную, если хотите.

$this->Model->set($this->data['Form']['agree']);
if($this->Model->validates($this->data)){
  // okay
  $this->Model->Save();
}else{
  pr($this->Model->invalidFields());
}

Или вы можете выполнить ручную проверку в модели, что, вероятно, предпочтительнее. Для этого я бы написал свою собственную функцию проверки, которая проверяет, существуют ли данные и соответствуют ли они значению вашей формы.

http://book.cakephp.org/view/1181/Adding-your-own-Validation-Methods

1 голос
/ 21 сентября 2010

Лично я проверю javascript перед отправкой формы, затем еще раз проверю в контроллере непосредственно перед сохранением ().

Я считаю, что соглашение на самом деле не связано с моделью данныхэто не сохраненное значение (и имеет только одно допустимое условие, поэтому проверка не имеет смысла), но является условием отправки формы.Если бы это был столбец в таблице или он использовался для генерации или изменения сохраненного значения, то я, вероятно, сделал бы это на модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...