0

我正在使用 Laravel 5.1 和 Intervention Imagecache

我正在写一家商店,产品页面有很多图片。我正在使用基于 URL 的操作(例如,访问http://store.app/image/255x135/some-image.jpg会生成一个 255x135 版本的 some-image.jpg)来调整图像大小。然而,当图像被加载时,Laravel 会生成一个检查用户的查询(select * from userswhere users. id= ? limit 1)

问题是每次访问 Laravel 中的任何路由时都会生成这个查询,包括 Intervention Imagecache 路由,并且当页面使用 Intervention 加载 20-30 张图片时,会针对每个图片执行上述用户检查 SQL 查询(在此20-30 次)。

当我试图找出问题时,我注意到这个查询是为 Laravel 中的每一个路由生成的,即使是一个简单的测试路由,换句话说,问题不在于 Intervention Imagecache 本身。

我目前正在尝试禁用干预路线上的用户检查查询,但我还没有成功。

我的两个问题是:

  1. 可以为特定路由禁用用户检查查询吗?
  2. 有没有办法解决这个按图像查询的问题(除了调整图像大小并将它们保存到文件系统 - 换句话说,放弃基于 URL 的操作)?

编辑

起初我正在使用 DB::listen() 进行调试,它显示正在执行多个查询(每个被访问的干预路由 1 个查询)

我刚刚安装并检查了 Clockwork 会显示的内容,它确实只显示了 1 个查询(不是多个查询,所以 Clockwork 说一切正常)。

我不确定这些相互矛盾的结果中哪一个是正确的,所以我直接从 MySQL 本身记录了查询 - 不幸的是,它显示执行了许多(与 DB::listen 记录的数量相同)查询(Clockwork 只显示了 1 个,但实际上有几个是执行)。

问题仍然存在,任何帮助将不胜感激。

4

0 回答 0