我正在将记录发布到表中,但我不明白为什么要再次尝试发布相同的记录。我收到错误消息
键“PRIMARY”的重复条目“20200406110039232385”
我的调用链如下
控制器->方法()>>>库->方法()>>>模型->方法()。
Controller->method() 在调用 Library->method() 之前首先生成/实例化一个 Library 对象。类似地,Library->method() 在调用之前首先生成/实例化一个模型对象。
我在库中引入了一个私有变量$counter
,我在构造函数中对其进行了初始化,0
并在库方法调用模型方法之前将以下代码插入到库方法中
++$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() 进行了一次调用。
问题是什么?