在Yii框架中替换来自同一id用户的数据

时间:2014-06-21 07:13:13

标签: php button javascript-events yii submit

我怎么能解决这个错误?我有问题从同一个id替换数据这是我的_from:

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Update'); ?>
</div>

这是我的Controller动作创建:

public function actionCreate()
{
    $model=new TblUasUts;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['TblUasUts']))
    {
        $model->attributes=$_POST['TblUasUts'];
        if($model->save())
            $this->redirect(array('view','id'=>$model->nim_mhs));
    }

    $this->render('update',array(
        'model'=>$model,
    ));
}

这就是我得到的错误:

CDbCommand gagal menjalankan statementSQL: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2010140360' for key 'PRIMARY'

2 个答案:

答案 0 :(得分:1)

这是因为您尝试使用现有的主键ID保存元素。如果要更新DB中的现有条目,则应从DB(TblUasUts :: model() - &gt; findByPk)加载ActiveRecord。您还可以将字段ID从$ _POST数组中取消设置,并且每次都在DB中创建新行。

public function actionCreate()
{
$model=new TblUasUts;

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['TblUasUts']))
{
    if (isset($_POST['TblUasUts']['id']) && $_POST['TblUasUts']['id']) {
        $model = TblUasUts::model()->findByPk((int)$_POST['TblUasUts']['id']);
    }

    $model->attributes=$_POST['TblUasUts'];
    if($model->update())
        $this->redirect(array('view','id'=>$model->nim_mhs));
}

$this->render('update',array(
    'model'=>$model,
));

}

答案 1 :(得分:0)

使用update删除保存:

<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Update'); ?>
</div>

and this is my Controller action Create :

public function actionCreate()
{
    $model=new TblUasUts;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['TblUasUts']))
    {
        $model->attributes=$_POST['TblUasUts'];
        if($model->update())
            $this->redirect(array('view','id'=>$model->nim_mhs));
    }

    $this->render('update',array(
        'model'=>$model,
    ));
}

另外,请检查您的ID字段是否自动增加和主要。