CakePHPform复选框验证错误未显示,但输入错误

时间:2013-01-30 16:55:26

标签: validation cakephp-2.1

我有一个包含必填字段的表单,一个字段是一个复选框。将显示所有验证错误,但复选框字段中没有错误。我安装了DebugKit-Plugin并看到会出现验证错误,但邮件不会显示。

class Users extends AppModel {

public $name = 'Users';
public $validate = array(
    'email' => array(
        'notEmpty' => array(
            'rule' => 'notEmpty',
            'message' => 'Bitte geben Sie ihre Email-Adresse ein',
            'allowEmpty' => false,
        ),
        'isUnique' => array(
            'rule' => 'isUnique',
            'message' => 'Diese Adresse ist bereits angemeldet',
        ),
        'email' => array(
            'rule' => array('email',true),
            'message' => 'Bitte geben Sie eine gültige Email-Adresse ein',
            'allowEmpty' => false,
        ),
    ),
    'terms' => array(
            'rule' => array('comparison','!=',0),
            'message' => 'Sie müssen unseren Nutzungsbedingungen zustimmen',
            'allowEmpty' => false,
    ),
    );    
}

形式:

<div class="right text-right" id="register_form">
    <?php
    echo $this->Form->create('Users', array('action' => 'register', 'inputDefaults' => array()));
    echo $this->Form->input('gender', array('label' => 'Anrede: &nbsp;', 'class' => 'inputField', 'options' => array('m' => 'Herr', 'f' => 'Frau')));
    echo $this->Form->input('first_name', array('label' => 'Vorname: ', 'class' => 'inputField'));
    echo $this->Form->input('last_name', array('label' => 'Nachname: ', 'class' => 'inputField'));
    echo $this->Form->input('email', array('label' => 'Email: ', 'class' => 'inputField'));
    echo $this->Form->input('terms', array('div' => true, 'type' => 'checkbox', 'value' => 0, 'label' => false, 'before' => ' <label for="UsersTerms">Ich akzeptiere die '.$this->Html->link('AGB', array('controller' => 'pages', 'action' => 'terms')).' </label>'));
    echo $this->Form->submit('Anmelden', array('class' => 'button'));
    echo $this->Form->end();
    ?>
</div>

控制器:

public function register() {
    if ($this->Auth->user())
        $this->redirect($this->referer('/'));
    if ($this->request->is("post")) {
        $this->Users->create();
        $this->Users->set(Sanitize::clean($this->request->data));
        #if ($this->Users->validates())
        #    die(debug($this->Users->validationErrors));
        $this->_hash = $this->Auth->password($this->Users->data['Users']['email']);
        $this->_password = $this->__randomString(8, 8);
        $this->Users->set('password', $this->Auth->password($this->_password));
        if ($this->Users->save()) {
            $this->Users->id = $this->Users->getLastInsertID();
            $this->_sendActivationMail();
            $this->Session->setFlash('An die angegebene Emailadresse wurde soeben ein Aktivierungslink versendet.', 'default', array('class' => 'yellow'));
            $this->redirect($this->referer());
        } else {
            $this->Session->setFlash('Ein Fehler ist aufgetreten', 'default', array('class' => 'red'));
        }
    }
}

我尝试使用&#34; $ this-&gt; Form-&gt;错误(&#39; terms&#39;);&#34;但是当我调试这一行时,如果出现错误,则只有

<div class="error_message"></div>

CakePHP是最新版本。搜索4个小时寻求帮助,但谷歌没有答案。你呢?

问候 微米。

1 个答案:

答案 0 :(得分:-1)

如果有人有同样的问题,我可以解决我的问题:

问题是特殊的字母“ü”。我试图用ISO 8859-1保存我的文件,但它需要用UTF8保存。现在将显示错误消息。