Я дал подтверждение в модели. Кроме того, я дал некоторую проверку в контроллере для проверки кода captcha. После этого приложение не отображает ошибки проверки модели. Если я прокомментирую код контроллера, проверка модели работает нормально и отображает ошибки. Оба не работают ..проверка cakephp как с модели, так и с контроллера
код модели (образец)
class User extends AppModel {
var $name = 'User';
var $validate = array(
'username' => 'notempty',
'firstname' => 'notempty'
);
}
Код контроллера
if (!empty($this->data)) {
$this->User->set($this->data);
$this->User->create();
$captcha = $this->Session->read('CAPTCHA_CODE');
if (strtolower($captcha) != strtolower($this->data['User']['captcha']))
{
$this->User->invalidate('captcha', __('Sorry, your entry did not match', true));
}
if ($this->User->save($this->data, array('validate' => 'only')))
{
if ($this->User->save($this->data, array('validate' => 'false'))) {
$this->Session->setFlash(__('Registered successfully', true));
$this->redirect('success');
}
}else {
$this->Session->setFlash(__('Please, try again.', true));
}
}
я заменил if ($this->User->save($this->data, array('validate' => 'only')))
линию if ($this->User->validates())
, затем также он не работает.
пожалуйста, помогите
Говоря о MVC, модель не должна иметь поля captcha. UserModel не должен знать «captcha». До сих пор я не могу найти подходящее, логичное решение этой проблемы. – hongster
@hongster, это отличный момент. В настоящее время у меня проблема «проверки», соответствует ли поле new_password поля confirm_password. Однако использование этой логики в Модели не имеет смысла. Что касается пароля, вы действительно будете только проверять свои правила пароля. Спасибо, что поставил меня прямо. – rob5408