我从Memcached迁移到Redis。起初,我使用的是PECL Redis 3.1.3,一切正常。在更新到3.1.5之后,我开始接收错误:
“类型错误:传递给Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory::mergeConstraints()的参数1必须是给定的Symfony\Component\Validator\Mapping\ClassMetadata,字符串的实例,在第95行的/var/www/acme/www/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php中调用“在/var/www/acme/www/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Factory/LazyLoadingMetadataFactory.php第120行”
我已经查找和红色的变化,没有找到任何线索,在两次版本更新后可能会出错..
我的config.yml (只有缓存/红色的东西):
framework:
validation:
cache: validator.mapping.cache.redis
serializer:
cache: serializer.mapping.cache.redis
session:
handler_id: session.handler.redis
doctrine:
orm:
auto_mapping: true
metadata_cache_driver:
type: redis
host: "%redis.ip%"
port: "%redis.port%"
instance_class: Redis
class: RedisCache
query_cache_driver:
type: redis
host: "%redis.ip%"
port: "%redis.port%"
instance_class: Redis
class: RedisCache
result_cache_driver:
type: redis
host: "%redis.ip%"
port: "%redis.port%"
instance_class: Redis
class: RedisCache
services:
serializer.mapping.cache.redis:
class: Doctrine\Common\Cache\RedisCache
validator.mapping.cache.redis:
class: Symfony\Component\Validator\Mapping\Cache\DoctrineCache
arguments: ['@doctrine.cache.redis']
redis:
class: Redis
calls:
- [ connect, [ '%redis.ip%', '%redis.port%' ]]
doctrine.cache.redis:
class: Doctrine\Common\Cache\RedisCache
calls:
- [setRedis, ["@redis"]]
session.handler.redis:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler
serializer.mapping.cache.memcached:
class: Doctrine\Common\Cache\MemcachedCache
doctrine_cache:
providers:
redis_cache:
redis:
connection_id: redis
我的symfony版本是2.8.31。有什么建议吗?
发布于 2018-02-28 06:36:26
解决了问题..。傻傻的
redis-cli flushall
https://stackoverflow.com/questions/49027201
复制