2016-09-30 85 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(); 
    }