#insert #yii2 #save
#вставить #yii2 #Сохранить
Вопрос:
Я пытаюсь вставить новые данные в свою таблицу audit_trial после успешного обновления другой таблицы, но она не работает. Между двумя указанными таблицами нет никакой связи. Ниже приведен пример кода.
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. Спасибо
Комментарии:
1. Почему вы не проверяете ошибки после
$audit->save()
? Ваш код не кажется глючным.2. @ZhukovRA я просто сделал то, что вы сказали. Просто простой оператор if — ‘if (audit-> save ()) echo «success»; и я не получаю сообщение.
3. Хорошо! Я понял. Это моя ошибка. Тип данных столбца ‘modified_by’ — ‘int’, а не ‘varchar’. Теперь это работает. Спасибо!
Ответ №1:
вы можете использовать!$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();
}