Итак, оказывается, что на это уже был дан ответ .
Используя цитированное расширение строки , можно избежать проблемы:
PS1='\n[\@] \w $(__git_ps1 "(%s)")'$'\n\$ '
Удивительно, что в 2016 году Баш все еще использует этот страшный, ужасный синтаксис. Должен быть лучший способ.
Функция date()
возвращает строку. Тип datetime
работает с DateTime
объектами. Поэтому либо измените тип отображения на string
, либо используйте DateTime
объекты.
вы всегда можете использовать:
$this->updated = new \DateTime("now");
http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/working-with-datetime.html
Я столкнулся с подобной проблемой, но с полем time
, и этот вопрос и ответ @romanb помогли.
Я получил следующую ошибку, очень похожую на ту, которая была в вопросе.
Call to a member function format() on a non-object in
... /vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php on line 50
Решение было аналогичным, для полей типа данных time
Doctrine будет принимать экземпляр PHP DateInterval
$quizFixture1->setCompletionTime(\DateInterval::createFromDateString('743 seconds'));
Попробуйте использовать setCreated с аннотациями для @ORM \ PrePersist и setUpdated с аннотациями для методов @ORM \ PrePersist и @ORM \ PreUpdate, в отличие от методов prePersist и preUpdate ...
/**
* @ORM\PrePersist
*/
public function setCreated()
{
$this->created = new \DateTime();
}
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function setUpdated()
{
$this->updated = new \DateTime();
}