Symfony - Объект класса DateTime не может быть преобразован в строку

1

У меня проблемы с атрибутом datetime в моем классе.

Следующий код находится в моем шаблоне ветки.

<div class="process-photo"><img src="{{ photo.getPhotoUrl }}" /></div>

Это метод getPhotoUrl

 public function getPhotoUrl()
    {
        return '/web/uploads/photos/'.$this->getUserId().'/'.$this->getPhotoUploadDate().'/'.$this->getName();
    }

Это метод getPhotoUploadDate

public function getPhotoUploadDate() {
    return date('Y-m-d', strtotime($this->creationDate));
    }

Я получаю следующую ошибку - Предупреждение: strtotime() ожидает, что параметр 1 будет строкой, объект указан

Если я попробую таким образом

public function getPhotoUrl()
    {
        return '/web/uploads/photos/'.$this->getUserId().'/'.$this->creationDate.'/'.$this->getName();
    }

Я получаю следующую ошибку: Catchable Fatal Error: объект класса DateTime не может быть преобразован в строку

что я делаю неправильно?

  • 3
    Сообщение об ошибке Object of class DateTime could not be converted to string - это вся необходимая вам информация. $this->creationDate является объектом DateTime, поэтому вместо date('Ymd', strtotime($this->creationDate)) вы можете легко использовать $this->creationDate->format('Ymd') . Зачем вам создавать дату из даты, которая у вас уже есть?
  • 0
    да, это сработало! Спасибо!
Показать ещё 1 комментарий
Теги:
datetime
twig

1 ответ

3

Сообщение об ошибке

Объект класса DateTime не может быть преобразован в строку

это вся необходимая информация.

$this->creationDate - объект DateTime, он уже содержит информацию о дате.

Поэтому вместо date('Ym-d', strtotime($this->creationDate)) вы можете легко $this->creationDate->format('Ym-d').

Вы пытаетесь создать новую Datestring из другой datestring и вместо того, чтобы давать datestring, вы даете объект DateTime.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню