У меня проблемы с атрибутом 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 не может быть преобразован в строку
что я делаю неправильно?
Сообщение об ошибке
Объект класса DateTime не может быть преобразован в строку
это вся необходимая информация.
$this->creationDate
- объект DateTime, он уже содержит информацию о дате.
Поэтому вместо date('Ym-d', strtotime($this->creationDate))
вы можете легко $this->creationDate->format('Ym-d')
.
Вы пытаетесь создать новую Datestring из другой datestring и вместо того, чтобы давать datestring, вы даете объект DateTime
.
Object of class DateTime could not be converted to string
- это вся необходимая вам информация.$this->creationDate
является объектом DateTime, поэтому вместоdate('Ymd', strtotime($this->creationDate))
вы можете легко использовать$this->creationDate->format('Ymd')
. Зачем вам создавать дату из даты, которая у вас уже есть?