从Yii框架相同ID用户替换数据 [英] replace data from same id user in Yii framework

查看:194
本文介绍了从Yii框架相同ID用户替换数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么能解决这个错误?我有问题,从更换相同ID的数据,这是我_from:

 < D​​IV CLASS =行按钮>
    < PHP的回声了CHtml ::提交按钮($建模> isNewRecord'创建'?'更新')?; ?>
< / DIV>

这是我的控制器行动创建:

 公共职能actionCreate()
{
    $模式=新TblUasUts;    //取消注释以下行,如果需要AJAX验证
    // $这个 - > performAjaxValidation($模型);    如果(使用isset($ _ POST ['TblUasUts']))
    {
        $建模>属性= $ _ POST ['TblUasUts'];
        如果($建模>保存())
            $这个 - >重定向(阵列('查看','ID'=> $建模> nim_mhs));
    }    $这个 - >渲染('更新',阵列(
        模式= GT; $模式,
    ));
}

这是我收到错误:

  CDbCommand gagal menjalankan statementSQL:SQLSTATE [23000]:完整性约束冲突:1062重复条目'2010140360'关键'PRIMARY'


解决方案

它发生becouse您尝试保存元素与现有的主键ID。如果您想更新现有的数据库条目您应该加载的ActiveRecord从DB(TblUasUts ::模型() - > findByPk)。你也可以从到$ _POST数组未设置域ID,并在数据库创建新行每次。

 公共职能actionCreate()
{
$模式=新TblUasUts;//取消注释以下行,如果需要AJAX验证
// $这个 - > performAjaxValidation($模型);如果(使用isset($ _ POST ['TblUasUts']))
{
    如果(使用isset($ _ POST ['TblUasUts'] ['身份证'])及和放大器; $ _ POST ['TblUasUts'] ['身份证']){
        $模式= TblUasUts ::模型() - GT; findByPk((int)的$ _ POST ['TblUasUts'] ['身份证']);
    }    $建模>属性= $ _ POST ['TblUasUts'];
    如果($建模>更新())
        $这个 - >重定向(阵列('查看','ID'=> $建模> nim_mhs));
}$这个 - >渲染('更新',阵列(
    模式= GT; $模式,
));

}

how i can fix this error ? i have problem replace data from same id this is my _from :

<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->save())
            $this->redirect(array('view','id'=>$model->nim_mhs));
    }

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

this is what i getting error :

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

解决方案

It happens becouse you try to save element with existing Primary Key id. if you want to update existing entry in DB you should load ActiveRecord from DB(TblUasUts::model()->findByPk). Also you can unset field id from into $_POST array and create new row in DB every time.

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,
));

}

这篇关于从Yii框架相同ID用户替换数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆