如果缓存存储设置为数组,Laravel 5.4 中的节流阀将不起作用
Throttle in Laravel 5.4 not working if cache storage is set to array
我在我的项目中使用 Zizaco/Entrust 并且它需要将 CACHE_DRIVER 设置为数组以支持标记但是我在 Laravel 中遇到节流问题,因为节流需要使用文件缓存驱动程序。
如何切换到 ThrottleRequests.php 中间件文件中的文件 CACHE_DRIVER 并覆盖它?
谢谢
错误是:This cache store does not support tagging.
如果您使用 array
缓存驱动程序,那么您的缓存将不会持久。此驱动程序仅适用于您的测试套件。
缓存标记的唯一限制是您不能使用 file
或 database
驱动程序。这意味着您应该使用其他驱动程序,例如 memcached
或 redis
驱动程序。
节流不需要 file
驱动程序,它只需要任何持久的驱动程序(array
以外的任何驱动程序)。
因此,如果您使用 memcached
或 redis
,您将在这两方面都做得很好。
我找到了另一个解决方案来解决这个问题,通过更改 Zizaco/entrust
版本而不是使用 Redis
或 Memcached
来自:
"zizaco/entrust": "5.2.x-dev"
至:
"zizaco/entrust": "dev-master"
然后解决了
它与文件缓存驱动程序一起正常工作。
"dev-master" have Merged pjmartorell:fix-cache-tags.
我在我的项目中使用 Zizaco/Entrust 并且它需要将 CACHE_DRIVER 设置为数组以支持标记但是我在 Laravel 中遇到节流问题,因为节流需要使用文件缓存驱动程序。
如何切换到 ThrottleRequests.php 中间件文件中的文件 CACHE_DRIVER 并覆盖它?
谢谢
错误是:This cache store does not support tagging.
如果您使用 array
缓存驱动程序,那么您的缓存将不会持久。此驱动程序仅适用于您的测试套件。
缓存标记的唯一限制是您不能使用 file
或 database
驱动程序。这意味着您应该使用其他驱动程序,例如 memcached
或 redis
驱动程序。
节流不需要 file
驱动程序,它只需要任何持久的驱动程序(array
以外的任何驱动程序)。
因此,如果您使用 memcached
或 redis
,您将在这两方面都做得很好。
我找到了另一个解决方案来解决这个问题,通过更改 Zizaco/entrust
版本而不是使用 Redis
或 Memcached
来自:
"zizaco/entrust": "5.2.x-dev"
至:
"zizaco/entrust": "dev-master"
然后解决了
它与文件缓存驱动程序一起正常工作。
"dev-master" have Merged pjmartorell:fix-cache-tags.