Phalcon 模型更新不起作用
Phalcon Model update not working
这是我的模型:
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
我没有发现您的上述代码有任何问题导致您看到的问题。我建议将您的数据库设置为转储所有 SQL 查询,并仔细检查您的数据库的默认值和可能会更改数据库本身内部值的函数。
我前一段时间也遇到过这个问题。 Phalcon 似乎不支持 bit
列。您应该改用 tinyint
。
我也找到了一个closed issue'confirming'这个
这是我的模型:
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
我没有发现您的上述代码有任何问题导致您看到的问题。我建议将您的数据库设置为转储所有 SQL 查询,并仔细检查您的数据库的默认值和可能会更改数据库本身内部值的函数。
我前一段时间也遇到过这个问题。 Phalcon 似乎不支持 bit
列。您应该改用 tinyint
。
我也找到了一个closed issue'confirming'这个