【发布时间】:2016-08-15 22:58:57
【问题描述】:
这是我的模型:
class Users extends Model
{
public $id;
public $fname;
public $lname;
public $email;
public $password;
public $emailVerified;
public $suspended;
}
现在我要去suspend一个用户...
$user = Users::findFirst(
array(
'conditions' => "email=:email:",
'bind' => array(
'email' => $context->request->getPost("email")
))
);
$user->suspended = 1;
$user->save();
现在问题来了,更新用户数据后,suspended 字段按预期设置为1,但奇怪的是emailVerified 字段也更新了。现在两个字段都保存值:1。
我不知道这是怎么回事。我搜索了互联网,但找不到类似的问题。我是不是做错了什么?
更新:
这是 mySQL 日志。我发现了问题。 Phalcon 查询生成器为 emailVerified 创建的值包含在单引号中。所以它是一个字符串,字段类型是bit。
111 Query
UPDATE `users` SET `fname` = 'user_fname', `lname` = 'user_lname', `email` = 'user_email', `emailVerified` = '0', `suspended` = 1 WHERE `id` = '3'
111 Quit
【问题讨论】:
-
您的用户模型中有 beforeValidation 或 beforeSave 方法吗?