我已将以下验证添加到我的用户模型中:
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' )
);
}
这个想法是,如果用户没有填写登录表单上的字段,那么它将显示上面的消息。但它不起作用???
答案 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']是否为空,如果是这样,只需设置一个闪存说明为空。密码也一样。