newyii 2012-10-25 13:24:01 3657次浏览 2条回复 0 0 0

使用$model= Yii::app()->db->createCommand($sql)->queryAll(); 返回的是数组 但是foeach循环出单个记录无法使用->delete() 删除, 但是使用return self::model()->findAll('id = ?',array($id));返回的也是数组 但可以使用->delete() 经常有需要级联删除的操作,要 放到事务处理中进行,返回的数组循环删除会用到

  • 回复于 2012-10-25 14:24 举报

    command用的就是普通的sql查询,就是纯粹的数组。
    findAll返回的不仅仅是结果,而是带着结果的AR实例,AR带有delete方法。

  • 回复于 2012-10-25 19:24 举报

    二楼正解。类似的情况还有,使用sql语句删除或者修改数据记录时,无法触发模型的beforeSave和afterDelete事件一个道理。因为使用sql语句,AR没有实例化,与模型方法无关。

您需要登录后才可以回复。登录 | 立即注册