DateTime类的对象无法转换为字符串 - Symfony/PHP

7
当我提交表单时,它显示了这个错误:

在模板渲染期间抛出了一个异常(“可捕获致命错误:无法将DateTime类的对象转换为字符串”)。

Full message Error

我不知道我做错了什么,这是我的代码(PHP)
   ->add('purchasedate', DateType::class, array(
            'widget' => 'single_text',
            'html5' => false,
            'label' => 'Date d’achat (JJ/MM/AAAA)*',
          ))

购买日期:
/**
 * @var string
 *
 * @ORM\Column(name="purchasedate", type="date")
 * @Assert\Range(
 *      min = "2019-01-14",
 *      max = "2019-04-14"
 * )
 * 
 * 
 * @Serializer\SerializedName("purchasedate")
 * @Serializer\Expose()
 * 
 */

private $purchasedate;

Get and Set Method

解决方案

我尝试在twig模板中显示日期时出现了错误。我只更新了显示代码。

{{ user.purchasedate|date('d-m-Y') }}

purchasedate 属性的底层实体对象类型是什么?完整的异常信息也会很有帮助。 - Jakub Matczak
1
我更新了问题。 - André
你能展示一下你的get和set方法吗? - Ravi Damasiya
将getter和setter的注释更改为日期而不是字符串。 - hoover_D
我回答我的问题,谢谢大家的帮助。 - André
显示剩余3条评论
2个回答

16

只需在您的日期上添加Twig过滤器即可

{{ mydate |date('d-m-Y') }}

2
->add('purchasedate', DateType::class, array(
    'widget' => 'single_text',
    'html5' => false,
    'label' => 'Date d’achat (JJ/MM/AAAA)*',
    'format' => 'yyyy-MM-dd',
));

如果不是。
$date = DateTime::createFromFormat(format, db_date);

$date = $date->format('d/m/Y'); 

1
我担心其他事情 :( - Ali Özyıldırım

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接