Таблица Yii2 не вставляется с новой записью

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