Codeigniter 4 переписывает запись в таблицу - PullRequest
0 голосов
/ 06 апреля 2020

Я отправляю запись в таблицу, но не понимаю, почему происходит вторая попытка опубликовать ту же запись. Я получаю сообщение об ошибке

Дублирующаяся запись '20200406110039232385' для ключа 'PRIMARY'

Моя цепочка вызовов выглядит следующим образом

Controller- > method () >>> Library-> method () >>> Model-> method ().

Метод Controller-> method () сначала создает / создает экземпляр объекта Library перед выполнением вызова в библиотеку-> метод (). Аналогично, Library-> method () сначала создает / создает экземпляр объекта Model перед выполнением вызова.

Я ввел в библиотеку приватную переменную $counter, которую я инициализирую в конструкторе 0, и вставил следующий код в методе библиотеки перед вызовом метода Model

++$this->counter;
echo '<< attempt number = ['.$this->counter.'] >> ';
if(record not already written) //to guard against a subsequent post
   Model->method();

, чтобы увидеть, происходит ли повторная запись в библиотеке.

Вывод

<< номер попытки = [1] >> << номер попытки = [1] >>

, что означает, что повтор поступает от контроллера. Объекты библиотеки, из которых поступают вызовы Model-> method (), являются различными объектами. Мы должны получить

<< номер попытки = [1] >> << номер попытки = [2] >>

, если это был тот же объект.

Но я делаю только один вызов в Controller-> method () для Library-> method ().

В чем проблема?

...