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

CakePHP应用程序上的登录表单验证,cakephp,Cakephp,我已将以下验证添加到我的用户模型中: class User extends AppModel { var $useTable = 'users'; var $validate = array( 'username' => array( 'rule'=>array('minLength', 1), 'message'=>'Please enter your username' ),

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

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' )
    );
}

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

您实际应该使用的是,设置为false并确保它是

更新:


有点麻烦,但是将登录表单的名称更改为“UserLogin”-然后在之前的筛选器中检查是否设置了$this->data['UserLogin']。如果是-检查$this->data['UserLogin']['username']是否为空,如果是,只需设置一个flash,说明其为空。密码也是一样。

哇!这次没有读标题-对于你的登录表单来说,提供任何反馈实际上也是一种不好的做法;同样,任何黑客都可能使用它来了解什么样的验证是到位的,并使其更容易暴力实施。可能是cake不允许您显示错误的原因。我的客户端已请求在用户发送空白表单时查看验证(服务器端),因此我需要了解如何执行。更新了一种执行方法。不是最好的,也不推荐!
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'
    )
);