Intervention ImagecacheでLaravel 5.1を使用しています
ストアを書いているのですが、商品ページには画像がたくさんあります。画像のサイズ変更にURL ベースの操作を使用しています(たとえば、 http: //store.app/image/255x135/some-image.jpg にアクセスすると、some-image.jpg の 255x135 バージョンが生成されます)。ただし、画像が読み込まれると、Laravel はユーザーをチェックするクエリを生成します (select * from users
where users
. id
= ? limit 1) 。
問題は、Intervention Imagecache ルートを含む Laravel の任意のルートにアクセスするたびにこのクエリが生成され、ページが Intervention を使用して 20 ~ 30 枚の画像をロードすると、すべての画像に対して上記のユーザー チェック SQL クエリが実行されることです (この20〜30回)。
問題を解明しようとしているときに、このクエリが Laravel のすべての単一ルートに対して生成されることに気付きました。単純なテスト ルートであっても、つまり問題は Intervention Imagecache 自体にあるわけではありません。
現在、介入ルートでユーザー チェック クエリを無効にしようとしていますが、まだ成功していません。
私の2つの質問は次のとおりです。
- 特定のルートに対してユーザーチェッククエリを無効にすることはできますか?
- この画像ごとのクエリの問題を回避する方法はありますか?
編集
最初に、DB::listen() を使用してデバッグしていましたが、複数のクエリが実行されていることが示されました (介入ルートにアクセスするたびに 1 つのクエリが実行されました)。
インストールして、Clockwork が表示する内容を確認したところ、実際には 1 つのクエリしか表示されません (複数のクエリではないため、Clockwork はすべて問題ないと言っています)。
これらの競合する結果のどれが正しいかわからなかったので、MySQL 自体からクエリを直接ログに記録しました - 残念ながら、多くの (DB::listen ログと同じ量の) クエリが実行されたことが示されました ( Clockwork は 1 つだけを示しましたが、実際にはいくつかのクエリが実行されました)。実行されます)。
問題は残っています。どんな助けでも大歓迎です。