2016-09-30 19 views
1

別のテーブルの更新が成功したときにaudit_trialテーブルに新しいデータを挿入しようとしていますが、動作していません。 2つのテーブルの間には関係はありません。以下はサンプルコードです。Yii2テーブルが新しいレコードで挿入されない

if ($flag) { 
    $transaction->commit(); 

    $audit = new AuditTrial(); 
    $audit->table_name = 'dep_customer'; 
    $audit->modified_by = 'tom'; 
    $audit->operation = 'update'; 
    $audit->save(); 

    return $this->redirect(['view', 'id' => $model->customer_id]); 
} 

私はそれがyii2に新しいレコードを作成するデフォルトの方法であるとして、それが動作するはず期待していたが、私は成功を得ていませんよ。ここに何かがないのですか?私はまだYii2のアマチュアです。ありがとう

+0

なぜ '$ audit-> save()'の後にエラーをチェックしていませんか?あなたのコードはバグのようではありません。 – ZhukovRA

+0

@ ZhukovRA私はちょうどあなたが言ったことをしました。単純なif文 - 'if(audit-> save())echo "success";私はメッセージを受け取っていません。 – gojiraki

+1

わかった。それは私の間違いです。 'modified_by'列のデータ型は 'int'で、 'varchar'ではありません。今、それは働いています。ありがとう! – gojiraki

答えて

0

あなたはデータを挿入するかどうかを判断するための$ model-> saveを使用することができます。

$audit = new AuditTrial(); 
    $audit->table_name = 'dep_customer'; 
    $audit->modified_by = 'tom'; 
    $audit->operation = 'update'; 
    if($audit->save())return $this->redirect(['view', 'id' => $model->customer_id]); 
    else { 
     print_r($audit->getErrors()); 
     die(); 
    } 
関連する問題