Доктрина 2. Вызов функции-члена format () для необъекта & hellip; в DateTimeType.php

Итак, оказывается, что на это уже был дан ответ .

Используя цитированное расширение строки , можно избежать проблемы:

PS1='\n[\@] \w $(__git_ps1 "(%s)")'$'\n\$ '

Удивительно, что в 2016 году Баш все еще использует этот страшный, ужасный синтаксис. Должен быть лучший способ.

29
задан Chris McFarland 1 August 2013 в 07:42
поделиться

4 ответа

Функция date() возвращает строку. Тип datetime работает с DateTime объектами. Поэтому либо измените тип отображения на string, либо используйте DateTime объекты.

59
ответ дан Darryl Hein 1 August 2013 в 07:42
поделиться

вы всегда можете использовать:

$this->updated = new \DateTime("now");

http://www.doctrine-project.org/docs/orm/2.0/en/cookbook/working-with-datetime.html

28
ответ дан space_balls 1 August 2013 в 07:42
поделиться

Я столкнулся с подобной проблемой, но с полем 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'));
3
ответ дан Adam Elsodaney 1 August 2013 в 07:42
поделиться

Попробуйте использовать 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();
}
5
ответ дан MediaVince 1 August 2013 в 07:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: