小编rah*_*uka的帖子

如何在YII2中处理/捕获数据库触发器中的错误

这是我的触发器

CREATE OR REPLACE TRIGGER trg_cek_pengurus
BEFORE INSERT ON tbl_pengurus
FOR EACH ROW
DECLARE
    v_cek NUMBER(2);
BEGIN

IF :NEW.jabatan = 1 OR :NEW.jabatan = 2 THEN

    select count(id)
    into v_cek
    from tbl_pengurus
    where idkoperasi = :NEW.idkoperasi and jabatan = :NEW.jabatan;

    IF v_cek > 0 THEN
        RAISE_APPLICATION_ERROR (-20000, 'kepengurusan sudah ada');
    END IF;

END IF;
END;
/
Run Code Online (Sandbox Code Playgroud)

nah ..,如果触发器有一个返回值是好的,:v但它不是:v所以我设置RAISE_APPLICATION_ERROR

这是我的控制者

public function actionTambahPengurus()
{
    $model = new Pengurus();
     if ($model->load(Yii::$app->request->post())){
        $model->IDKOPERASI = Yii::$app->user->identity->ID;
        if($model->save())
            return $this->redirect('kepengurusan');
     }

    return $this->render('tambah-pengurus',[
        'model' => …
Run Code Online (Sandbox Code Playgroud)

database error-handling triggers yii2

2
推荐指数
1
解决办法
4103
查看次数

标签 统计

database ×1

error-handling ×1

triggers ×1

yii2 ×1