Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP更新5.6.26至5.6.27后的TransformationFailedException_Php_Symfony - Fatal编程技术网

PHP更新5.6.26至5.6.27后的TransformationFailedException

PHP更新5.6.26至5.6.27后的TransformationFailedException,php,symfony,Php,Symfony,共享主机上的应用程序现在生成 …datefmt_create:没有这样的时区:“美国/洛杉矶” 用户试图访问带有日期字段的表单时出错。完整的信息是: 未捕获的PHP异常 Symfony\Component\Form\Exception\TransformationFailedException: 无法转换属性路径“contactDate”的值: datefmt_create:没有这样的时区:“美国/洛杉矶”: U_非法_参数_错误”在 /ww3.projectmana.org/vendor/sy

共享主机上的应用程序现在生成

…datefmt_create:没有这样的时区:“美国/洛杉矶”

用户试图访问带有日期字段的表单时出错。完整的信息是:

未捕获的PHP异常 Symfony\Component\Form\Exception\TransformationFailedException: 无法转换属性路径“contactDate”的值: datefmt_create:没有这样的时区:“美国/洛杉矶”: U_非法_参数_错误”在 /ww3.projectmana.org/vendor/symfony/symfony/src/symfony/Component/Form/Form.php 第1149行

几周来,该网站没有其他变化

通过
phpinfo()
的默认时区是
America/Los_Angeles

对此有任何合理的解释/修正吗?同一服务器上的站点有一个沙箱显示了相同的错误。该错误不会发生在我的开发PHP7系统上

编辑: 我已将Symfony 2.8安装替换为(已测试)3.1.5-类似的行为。现在出现错误:

发生了一个错误!未捕获的PHP异常 Symfony\Component\OptionsResolver\Exception\InvalidOptionsException: “datefmt_create:没有这样的时区:'美国/洛杉矶': U_非法_参数_错误”在 /ww3.projectmana.org/vendor/symfony/symfony/src/symfony/Component/Form/Extension/Core/Type/DateType.php 第88行

使用以下简化代码:

控制器:

/**
 * @Route("/datecheck")
 */
public function dateCheckAction()
{
    $form = $this->createFormBuilder($task)
        ->add('dueDate', DateType::class)
        ->add('save', SubmitType::class, array('label' => 'Create Task'))
        ->getForm();

    return $this->render('Default/datecheck.html.twig', [
        'form' => $form,
    ]);
}
模板:

{{ form(form) }}
编辑#2: 当我看到应用程序的错误而不是上面简单代码中的错误时,我看到:

发生了一个错误!未捕获的PHP异常 Symfony\Component\Form\Exception\TransformationFailedException: 无法转换属性路径“contactDate”的值: datefmt_create:没有这样的时区:“美国/洛杉矶”: U_非法_参数_错误”在 /ww3.projectmana.org/vendor/symfony/symfony/src/symfony/Component/Form/Form.php 第1095行

该行附近的Form.php代码:

try {
    foreach ($this->config->getViewTransformers() as $transformer) {
        $value = $transformer->transform($value);
    }
} catch (TransformationFailedException $exception) {
    throw new TransformationFailedException(
        'Unable to transform value for property path "'.$this->getPropertyPath().'": '.$exception->getMessage(),
        $exception->getCode(),
        $exception
    );
}
异常中包含的
var\u转储($transformer)
的结果为

object(Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer)#1128 (6) { ["dateFormat":"Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer":private]=> int(2) ["timeFormat":"Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer":private]=> int(-1) ["pattern":"Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer":private]=> string(5) "M/d/y" ["calendar":"Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer":private]=> int(1) ["inputTimezone":protected]=> string(19) "America/Los_Angeles" 

不确定该如何处理此信息。

您可以从中尝试示例1A吗



这将输出所有时区。。。如果你的时区在列表中,那么它是另外一个地方。

你能试一下列表中的示例1A吗



这将输出所有时区。。。如果您的时区在列表中,那么它是另外一个问题。

解决方案是让共享主机的网站管理员找出IntlDateFormatter返回null的原因,但目前还没有答案。当主机运行时

<?php
$fmt = new IntlDateFormatter('en', null, null);

echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();

解决方案是让共享主机的网站管理员找出IntlDateFormatter返回null的原因,但目前还没有答案。当主机运行时

<?php
$fmt = new IntlDateFormatter('en', null, null);

echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();

这听起来不像是PHP的问题;听起来更像是你的时区(zoneinfo)文件不知何故被破坏了?@jhaagsma我会把这个传给主机;我无法控制服务器。谢谢。@jhaagsma主机报告zoneinfo文件很好,带有日期函数的php脚本执行正常。这听起来不像是php问题;听起来更像是你的时区(zoneinfo)文件不知何故被破坏了?@jhaagsma我会把这个传给主机;我无法控制服务器。谢谢。@jhaagsma主机报告zoneinfo文件很好,带有日期函数的php脚本执行正常。完成<代码>美国/洛杉矶
出现在output.Hmm中。那就不是了。我并不完全熟悉Symfony,但我会看一看相关的线路,看看它试图做什么…完成<代码>美国/洛杉矶
出现在output.Hmm中。那就不是了。我对Symfony不太熟悉,但我会看一看相关的线路,看看它想做什么。。。