在我的数据库中创建了跟踪表,我将在其中保存在哪个时间访问了哪些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应用程序中的问题。有两种解决方案
- 禁用此控制器的缓存
- 在我的情况下,使用JS ajax请求,它将保存有关用户页面访问的日志