Yii插入记录而不是更新

时间:2014-04-06 15:11:40

标签: php yii

我使用的是Yii框架,但这可能与我的PHP代码有关。

我的控制器中有3个方法,1个用于创建,1个用于更新,1个用于保存。 创建和更新渲染相同的表单。

保存记录的一切正常。但是当我更新记录时,它会创建一条新记录。 在我的更新方法中,我加载现有记录并获得正确的值,但是当我保存它时将其保存在新记录中。我尝试使用$ model-> update()而不是$ model-> save(),但我收到的错误是我无法更新新记录。

提前感谢任何见解

方法创建

$model = new Comment;

        $this->renderPartial('_formComment',array(
                'model'=>$model,
                'post_id'=>$post_id,)
        ); 

方法更新

$model=$this->loadModel($comment_id);

        $this->renderPartial('_formComment',array(
                'model'=>$model,
                'post_id'=>$model->post_id,
                'comment_id'=>$model->id,)
        );

保存方法

$comment=new Comment;

if(isset($_POST['Comment']))
    {
        $model->attributes=$_POST['Comment'];

        if($model->save()) {

            echo ('save ok');                   

        }
    }

我的更新方法调用的loadmodel函数

if($this->_model===null)
        {

            $this->_model=Comment::model()->findbyPk($comment_id);
            if($this->_model===null)
                throw new CHttpException(404,'The requested page does not exist.');
        }
        return $this->_model;

1 个答案:

答案 0 :(得分:2)

你有

$comment=new Comment; 

在save方法中,它始终创建一个新模型。但是您需要加载现有模型,设置属性并保存它。在保存方法中传递$ model。