我已经设置了一个登录过程,在该过程中生成验证码,成功后将被删除。但是,我想确保如果同一用户有多个验证码,登录成功后,删除该用户的所有记录。
这是我的代码
if ($model->validate() && $model->login()) {
//delete this verification code
$verificationCode->delete();
//delete all existing codes for user_id
VerificationCode::model()->deleteAll('user_id',$user->id);
Yii::app()->user->setReturnUrl(array('/system/admin/'));
$this->redirect(Yii::app()->user->returnUrl);
}
但是,这似乎只是删除了所有记录,无论表中的 user_id 不同。谁能看到我哪里出错了?
最佳答案
似乎您以错误的方式调用函数 delete() ...尝试以这种方式传递值
VerificationCode::model()->deleteAll('user_id = :user_id', array(':user_id' => $user->id));
关于php - Yii deleteAll() 有条件的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37009472/