CakePHP应用程序上的登录表单验证

时间:2011-08-21 11:15:39

标签: cakephp

我已将以下验证添加到我的用户模型中:

class User extends AppModel
{
    var $useTable = 'users';

    var $validate = array(
        'username' => array(
            'rule'=>array('minLength', 1), 
            'message'=>'Please enter your username' ),
        'password' => array(
            'rule'=>array('minLength', 1), 
            'message'=>'Please enter your password' )
    );
}

这个想法是,如果用户没有填写登录表单上的字段,那么它将显示上面的消息。但它不起作用???

1 个答案:

答案 0 :(得分:1)

您实际应该使用的是'notEmpty',将'allowEmpty'设为false并确保其为'required'

var $validate = array(
    'username' => array(
        'rule' => 'notEmpty',
        'required' => true,
        'allowEmpty' => false,
        'message' => 'Please enter a username'
    )
    'password' => array(
        'rule' => 'notEmpty',
        'required' => true,
        'allowEmpty' => false,
        'message' => 'Please enter a password'
    )
);

更新

有点破解,但是将登录表单的名称更改为“UserLogin” - 然后在您之前的过滤器检查中是否设置了$ this-> data ['UserLogin']。如果是 - 检查$ this-> data ['UserLogin'] ['username']是否为空,如果是这样,只需设置一个闪存说明为空。密码也一样。