我试图在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从实体生成后端,但也得到相同的错误,那么我的实体是否有问题?
答案 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()
没有参数?