design231 2012-12-26 11:56:11 2829次浏览 3条回复 0 0 0
public function actionDelete($id)
{
    if(Yii::app()->request->isPostRequest)
    {
        $this->loadModel($id)->delete();
        //删除一条数据时要更新剩余数据的时间字段
        $model = new Table;
        $model->last_modified=date("Y-m-d H:i:s",time());
        if(!$model->save()){
            echo date("Y-m-d H:i:s",time());
        }
    }
}	

这样做更新不了,请会的指点一下,谢谢了

  • 回复于 2012-12-26 13:10 举报
    $model = new Table;
    $model->last_modified=date("Y-m-d H:i:s",time());
    if(!$model->save()){
        echo date("Y-m-d H:i:s",time());
    }
    

    你想更新的是表中所有剩余记录中 'last_modified' 列的值,而 ActiveRecord Class 是针对单条记录行的操作类,所以上面那么写不行。我也刚了解 Yii, 你试试下面这个:
    Yii::app()->db->createCommand()->update('table',array('last_modified'=>date("Y-m-d H:i:s",time())));

  • 回复于 2012-12-26 13:38 举报

    谢谢,已经解决:
    $count = Table::model()->updateAll(array("last_modified"=>date("Y-m-d H:i:s",time())));
    这个可以的。

  • 回复于 2012-12-26 13:56 举报

    惭愧,自己之前接触的 udpate 操作都是针对单条记录,不知道 update() 和 delete(), find() 一样有对应针对多条记录的 updateAll().

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