我遇到了Yii ActiveRecord的奇怪情况。 我有模型用户(有一些关系,但没有外键)。当我尝试从操作中删除一些行时:
$cr = new CDbCriteria();
$cr->addColumnCondition(array(
'status' => User::USER_STATUS_DELETED
));
$items = User::model()->findAll($cr);
if(!empty($items)){
foreach($items as $item){
$item->delete();
}
}
没有效果。用户仍在那里。顺便说一下,我可以用phpmyadmin手动删除它们。更有趣的事情 - $item->delete()
返回true。
问题在哪里?
答案 0 :(得分:1)
1)确保没有覆盖删除功能的功能
2)如果您有关系,并且创建不当,并且您尝试删除与另一条记录相关的user.id,则删除可能会失败。 (但在phpmyadmin中也应该失败)
3)例如我有一个软删除,我只是用“已删除”替换user.status。如果我的模型没有验证,我不能这样做,所以我必须做一个 - >保存(假)来解决这个问题(我实际上不这样做但是你明白我的意思)。