嘿试图对名为'activated'的布尔字段进行验证检查。基本上,如果布尔值为1,则帐户处于活动状态,这意味着它们可以登录。如果是其他任何内容,则用户无法登录。
以下是我在用户模型中的检查:
public $checkActive = array(
'activated'=>array(
'rule'=>array('equalTo', '1'),
'message'=>'The account must be activated, please check your email.'
));
不幸的是,用户可以在不想要的时候登录。
答案 0 :(得分:0)
我相信模型中的验证仅在保存数据时进行测试。
如果您正在使用身份验证组件,则可以定义“范围”,这是一个必须等于用户才能进行身份验证的条件。
'scope' => array('User.activated' => 1)
更多信息和示例:http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html)
如果您已编写自己的身份验证,则可以将条件添加到当前的查找语句中。
$this->User->find('all', array('conditions' => array('username' => $username, 'password' => $password, 'activated' =>1);
希望这能回答你的问题。