2016-09-30 134 views
1

我試圖在成功更新另一個表時成功更新audit_trial表中的新數據,但它不起作用。上述兩張表格之間沒有關係。以下是示例代碼。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

你可以使用!$模型 - >保存確定數據是否被插入。

$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(); 
    }