0

CakePHP 重复了这个精确的查询 3 次:

SELECT COUNT(*) AS `count` FROM `mydb`.`players` AS `Player` WHERE `Player`.`id` = 8

当我运行时:

$this->Player->id = $player_id;
$this->Player->save($save_array);

似乎 CakePHP 这样做是为了检查 aModel->save()是否应该是创建或更新条目。我已经研究了这个问题,并试图实现以下内容:

通过在 saveFields 中提供 ID 键来强制 CakePHP 进行更新COUNT(*)如果它知道每次都更新,我认为它不需要做 a 。这是我真正的目标,在这里:像 updateAll 这样的东西save()。假设 updateAll 也没有做到这COUNT(*)一点。

自定义分页,我要么做错了,要么不是问题。

更改 model.php(!)很危险并且最终没有成功。

我只想拥有另一个类似的功能save(),只需更新,这样我就可以摆脱这些COUNT(*)查询,但我不确定 CakePHP 是否支持这样的事情。

4

1 回答 1

1

调用来自Model::exists()模型中的函数。AppModel您可以在您的或任何您需要防止这种情况的模型中覆盖该函数并在本地缓存该函数的结果。

例如,如果它id = 8在该函数中获得了 ,那么您可以拥有一个数组来记住该 id 已经存在。

于 2016-03-16T12:06:41.057 回答