EasyAdmin:“无法转换属性路径XY的值:需要一个字符串。”

时间:2018-10-15 17:04:24

标签: php symfony symfony2-easyadmin

在实体的EasyAdmin列表视图中单击“编辑”链接时,该实体包含带有type="date"的字段,我收到以下错误消息:

  

无法转换属性路径“生日”的值:需要一个字符串。

我的实体中有这个

/**
 * @ORM\Column(type="date")
 * @Assert\NotBlank()
 * @Assert\Date()
 */
private $birthday;

1 个答案:

答案 0 :(得分:2)

有2种解决方案。

又快又脏(Symfony <5)

config/packages/easy_admin.yaml中进行更改:

easy_admin:
    entities:
        MyEntity:
            form:
                fields:
                    - { property: 'birthday', type: 'date' }

有关更多的配置详细信息,请参见https://symfony.com/doc/master/bundles/EasyAdminBundle/book/edit-new-configuration.html#the-special-form-view

快速清洁

@Assert\Date()在Symfony 4.2中的type="date"字段中已弃用(因此可能在Symfony 5中已删除)。验证取决于设置器的\DateTimeInterface类型提示。总计:

/**
 * @ORM\Column(type="date")
 * @Assert\NotBlank()
 */
private $birthday;

public function setBirthday(?\DateTimeInterface $birthday): self
{
    // ...
    return $this;
}

有关一些背景信息,请参见https://github.com/EasyCorp/EasyAdminBundle/issues/2381