Symfony2 Datetime TransformationFailed异常

时间:2015-11-25 23:12:45

标签: php symfony crud

我试图在symfony2中生成CRUD时遇到错误我总是遇到以下异常:

"Unable to transform value for property path "xxx": Expected a \DateTime or \DateTimeInterface."

它总是发生在任何datetime字段这里是我的实体字段的摘录:

 /**
 * @var \DateTime
 *
 * @ORM\Column(name="date_added", type="datetime", nullable=false)
 */
private $dateAdded = '0000-00-00 00:00:00';


/**
 * Set dateAdded
 *
 * @param \DateTime $dateAdded
 *
 * @return User
 */
public function setDateAdded()
{
    $this->dateAdded = new \DateTime();

    return $this;
}

/**
 * Get dateAdded
 *
 * @return \DateTime
 */
public function getDateAdded()
{
    return $this->dateAdded;
}

- 我也尝试使用easyadmin bundle来实时使用symfony2 CRUD从实体生成后端,但也得到相同的错误,那么我的实体是否有问题?

2 个答案:

答案 0 :(得分:0)

$dateAdded字段不能包含字符串。它需要有一个DateTime对象,因为这是预期的。换句话说,你需要一个设置日期的构造函数:

 /**
 * @var \DateTime
 *
 * @ORM\Column(name="date_added", type="datetime", nullable=false)
 */
private $dateAdded;

public function __construct() {
    $this->dateAdded = new \DateTime();
}

此外,您需要在setDate方法上接受参数:

public function setDate($date) {
    $this->dateAdded = $date;
}

作为旁注,请注意,如果您要在树枝模板中显示日期,则需要使用date过滤器:

{{ entity.dateAdded|date('d.m.Y') }}

答案 1 :(得分:0)

也许删除注释@param \DateTime $dateAdded,因为function setDateAdded()没有参数?