Cegah duplikasi data (Kasus cegah NIP ganda) didalam YII dengan try catch |
Sugik-info.blogspot.com - Berikut ini catatan kecil tentang cara Cegah duplikasi data (Kasus cegah NIP ganda) didalam YII dengan try catch. Misalkan saja akan mencegah inputan data ganda kita bisa menggunakan langkah-langkah seperti contoh berikut ini:
Langkah 1:
pada file controller Anda
public function actionCreate()
{
$model=new Pegawai;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
if(isset($_POST['Pegawai']))
{
try { //try jika berhasil
$model->attributes=$_POST['Pegawai'];
if($model->save())
Yii::app()->user->setFlash('success', 'Data berhasil di simpan');
$this->redirect(array('view','id'=>$model->id));
}
catch(CDbException $e) //catch jika gagal
{
Yii::app()->user->setFlash('error', '<strong>Gagal!</strong> NIP sudah ada didalam sistem');
$this->redirect(array('duplikasi'));
}
}
$this->render('create',array(
'model'=>$model,
));
}
Langkah 2:
Membuat function
public function actionDuplikasi()
{
$this->render('duplikasi');
}
Langkah 3:
Pada Accesrule tambahkan nama fungsinya
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','duplikasi'), //duplikasi adalah metode untuk mecegah data kembar
'users'=>array('@'),
),
}
Langkah 4:
Membuat View
<?php
$this->breadcrumbs=array(
//'Error'=>array('index'),
'Kesalahan'
);
<?php
foreach(Yii::app()->user->getFlashes() as $key =>$message)
{
echo '<div class="flash-'.$key.'">'.$message.'</div>';
echo CHtml::Button('Kembali',array('onClick'=>'window.history.back(-3)'));
}
?>
Semoga bermanfaat
Komentar ini telah dihapus oleh pengarang.
BalasHapus