我的Yii2 mongoDb型号有问题。我想更新我的User对象。在模型类中我有:
public function attributes() {
return [
'_id',
'username',
'password',
'email',
];
}
我想更新我的用户:“www”。 所以我这样做:
$user = User::findOne(["username"=>"www"]);
$user->email = "www@www.www";
if($user->save()){
var_dump('inserted');
}else{
var_dump('not inserted');
}
当我在创建之前转储用户时,我会收到我设置的电子邮件。
在转储时我得到“未插入”。任何人都可以帮助我吗?
答案 0 :(得分:0)
可能是您有验证问题.. 尝试(仅用于调试)使用save(false),因此不要执行验证..
$user = User::findOne(["username"=>"www"]);
$user->email = "www@www.www";
if($user->save(false)){
var_dump('inserted');
}else{
var_dump('not inserted');
}
如果在这种情况下保存$ user。检查您的模型规则以定义可能失败的规则
您可以通过这种方式获取错误
if (!$user->validate()) {
var_dump($user->errors)
}