php - Yii deleteAll() 有条件的记录

标签 php yii

我已经设置了一个登录过程,在该过程中生成验证码,成功后将被删除。但是,我想确保如果同一用户有多个验证码,登录成功后,删除该用户的所有记录。

这是我的代码

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/

相关文章:

php - 将来自适配器的 JSON 响应填充到下拉菜单中

php - 部分渲染的 div 内的 ajax 验证

php - 具有 rtl 和 ltr 方向的多语言站点

php - 将数据从模型加载到复选框列表中

php - 如何在 Laravel Eloquent 中选择某些字段?

php - 如何获取表中属于某个类别的所有行,然后显示每行的一个字段,但按子类别划分它们

php - 如何在 json 文件中插入现有的 php 字符串文字?

php - mysql连接表并接收一行

sql - 在 yii 中使用 CActiveDataProvider 获取数据

php - MySQL - LEFT JOIN - 如何获得我需要的值