2015-11-25 3 views
1

я застрял в ошибке при попытке генерации CRUD в Symfony2 я всегда получаю следующее исключение:Symfony2 Datetime TransformationFailed Исключение

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

это всегда происходило с полем любой даты и времени здесь отрывок из моего поля объекта:

/** 
* @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

Поле $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') }} 
0

Возможно удаление аннотации @param \DateTime $dateAdded как у вашего function setDateAdded() нет параметров?

Смежные вопросы