Symfony不插入新值,而是接收数据库中已存在的id



在我的数据库中创建了跟踪表,我将在其中保存在哪个时间访问了哪些URL。

const INSERT_TRACKING_SQL = "
INSERT INTO `custom_tracking` (
`utidId`, `url`, `urlParams`, `time`
) 
VALUES 
(
:utidId, :url, :urlParams, now()
);
";
$conn = $entityManager->getConnection();
$stmt = $conn->prepare(self::INSERT_TRACKING_SQL);
$stmt->bindParam(':utidId', $utid_db_id);
$stmt->bindParam(':url', $url);
$stmt->bindParam(':urlParams', $urlParams);
$stmt->execute();
$tracking_id = $conn->lastInsertId();

但在执行SQL命令并通过lastInsertId((获得新记录的ID后,我得到了具有相同参数(除了时间(的最后一条记录,并且任何新记录都没有插入DB

我使用的是Sulu框架,当这个框架缓存http请求时,它不会访问呈现页面的控制器。

当控制器被缓存时,这可能是symfony应用程序中的问题。有两种解决方案

  1. 禁用此控制器的缓存
  2. 在我的情况下,使用JS ajax请求,它将保存有关用户页面访问的日志

最新更新