Я отправляю запись в таблицу, но не понимаю, почему происходит вторая попытка опубликовать ту же запись. Я получаю сообщение об ошибке
Дублирующаяся запись '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 ().
В чем проблема?