在cakephp中更新时,与Id相关的页面正在添加垃圾值

在cakephp中更新时,与Id相关的页面正在添加垃圾值,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,我想在每次打开时更新索引函数中的查询,以便统计id页面中博客或书籍中的访问者数量。下面是我在索引函数中编写的简单代码,但每当我刷新页面时,它会将值增加10-20个数字(不是固定的)。我已经尝试了一切,调试工具包也显示了查询是正确的。现在我发现它产生了问题,因为我在url中使用了拐点::slug('title')。请提出适当的解决办法 public function index($id) { $student = TableRegistry::get('count'); $queryy =

我想在每次打开时更新索引函数中的查询,以便统计id页面中博客或书籍中的访问者数量。下面是我在索引函数中编写的简单代码,但每当我刷新页面时,它会将值增加10-20个数字(不是固定的)。我已经尝试了一切,调试工具包也显示了查询是正确的。现在我发现它产生了问题,因为我在url中使用了拐点::slug('title')。请提出适当的解决办法

public function index($id)
{
  $student = TableRegistry::get('count');
  $queryy = $student->query();
  $queryy->update()->set(['temp = temp + 1'])->WHERE(['visitor'=>$id])->execute();
}

我甚至不知道你为什么要这样写代码。这是我要做的

$this->loadModel('Students');
$student=$this->Students->find()
->其中(['id'=>$id])
->第一个();
$student->set('temp'),(int)$student->get('temp')+1;
$this->student->save($student);

我甚至不知道您为什么要这样编写代码。这是我要做的

$this->loadModel('Students');
$student=$this->Students->find()
->其中(['id'=>$id])
->第一个();
$student->set('temp'),(int)$student->get('temp')+1;
$this->student->save($student);

可能是因为与读取、手动递增和保存不同,默认情况下这些操作都是原子式的。除非您将其关闭,否则默认情况下所有查询都是原子式的。默认情况下,保存操作在事务中运行,是的(不要忘记,根据隔离级别,事务可能更可靠或更不可靠),但您的示例会发出两个单独的查询,其中只有第二个查询在事务中运行。可能是因为与读取、手动递增和保存不同,默认情况下,所有查询都是原子查询,除非您将其关闭。保存操作默认在事务中运行,是的(不要忘记,根据隔离级别的不同,事务可能更可靠或更不可靠),但您的示例会发出两个单独的查询,其中只有第二个查询在事务中运行。我怀疑拐点是否与您的问题有关。我猜很简单,每个页面视图都会导致一系列额外的请求、资源、AJAX请求、重定向等,有时浏览器甚至会加载两次URL,Firefox在第一个x字符中找不到编码信息时就会这样做。无论如何,如果没有额外的信息,这里没有人能真正帮助你,因为人们所能做的只是猜测,这并没有太大的帮助。请进行一些调试并为您的问题添加更多细节。我怀疑拐点是否与您的问题有关。我猜很简单,每个页面视图都会导致一系列额外的请求、资源、AJAX请求、重定向等,有时浏览器甚至会加载两次URL,Firefox在第一个x字符中找不到编码信息时就会这样做。无论如何,如果没有额外的信息,这里没有人能真正帮助你,因为人们所能做的只是猜测,这并没有太大的帮助。请进行一些调试,并为您的问题添加更多详细信息。