Symfony - 缓存键包含保留字符
Symfony - Cache key contains reserved characters
我正在使用 Symfony 3.4.4,使用 FOSUser 捆绑包进行简单安装。我创建了基于用户实体的简单表单:
$editForm = $this->createForm('Company\AdminBundle\Form\UserEditType', $user);
$editForm->handleRequest($request);
表单只有两个输入:
$builder
->add('name', TextType::class, ['label' => 'name and surname'])
->add('department', TextType::class, ['label' => 'department']);
当我提交表单(我正在发送姓名、部门和令牌)时,$editForm->handleRequest($request)
我收到异常:
request.CRITICAL: Uncaught PHP Exception Symfony\Component\Cache\Exception\InvalidArgumentException: "Cache key "myuser.email@address.com" contains reserved characters {}()/\@:" at /Sites/project/vendor/symfony/symfony/src/Symfony/Component/Cache/CacheItem.php line 162 {"exception":"[object] (Symfony\Component\Cache\Exception\InvalidArgumentException(code: 0): Cache key \"myuser.email@address.com\" contains reserved characters {}()/\@: at /Sites/project/vendor/symfony/symfony/src/Symfony/Component/Cache/CacheItem.php:162)"} []
它只发生在 prod env 上,在 dev 上它工作得很好。
我不知道,没有自定义缓存配置,没有额外的缓存包等。 OSX localhost apache with PHP 7.1.
你应该看这里:https://github.com/php-cache/issues/issues/49
适用于 cache/cache-bundle 的 0.4.3。 0.4.4 坏了。您可以更改缓存包版本。
所以问题出在稍微不同的地方。在我的 User
实体中,我 email
属性 设置如下:
/**
* @var string
*
* @Assert\Valid
*/
protected $email;
@Assert\Valid
有问题,只是不知道为什么(尽管我不知道为什么只使用了 Valid
,而不是 Email()
等等。 ,但现在不重要)。
解决方案很简单,摆脱这个断言或只是用 @Assert\Email()
.
替换它
如我所写,我不知道为什么会导致这样的错误。您可以在此处查看和阅读问题 - https://github.com/symfony/symfony/issues/26313
我正在使用 Symfony 3.4.4,使用 FOSUser 捆绑包进行简单安装。我创建了基于用户实体的简单表单:
$editForm = $this->createForm('Company\AdminBundle\Form\UserEditType', $user);
$editForm->handleRequest($request);
表单只有两个输入:
$builder
->add('name', TextType::class, ['label' => 'name and surname'])
->add('department', TextType::class, ['label' => 'department']);
当我提交表单(我正在发送姓名、部门和令牌)时,$editForm->handleRequest($request)
我收到异常:
request.CRITICAL: Uncaught PHP Exception Symfony\Component\Cache\Exception\InvalidArgumentException: "Cache key "myuser.email@address.com" contains reserved characters {}()/\@:" at /Sites/project/vendor/symfony/symfony/src/Symfony/Component/Cache/CacheItem.php line 162 {"exception":"[object] (Symfony\Component\Cache\Exception\InvalidArgumentException(code: 0): Cache key \"myuser.email@address.com\" contains reserved characters {}()/\@: at /Sites/project/vendor/symfony/symfony/src/Symfony/Component/Cache/CacheItem.php:162)"} []
它只发生在 prod env 上,在 dev 上它工作得很好。 我不知道,没有自定义缓存配置,没有额外的缓存包等。 OSX localhost apache with PHP 7.1.
你应该看这里:https://github.com/php-cache/issues/issues/49
适用于 cache/cache-bundle 的 0.4.3。 0.4.4 坏了。您可以更改缓存包版本。
所以问题出在稍微不同的地方。在我的 User
实体中,我 email
属性 设置如下:
/**
* @var string
*
* @Assert\Valid
*/
protected $email;
@Assert\Valid
有问题,只是不知道为什么(尽管我不知道为什么只使用了 Valid
,而不是 Email()
等等。 ,但现在不重要)。
解决方案很简单,摆脱这个断言或只是用 @Assert\Email()
.
如我所写,我不知道为什么会导致这样的错误。您可以在此处查看和阅读问题 - https://github.com/symfony/symfony/issues/26313