Как я могу использовать свойство объекта при определении другого свойства объекта

#php #doctrine-orm #symfony4

#php #doctrine-orm #symfony4

Вопрос:

Мне нужно использовать свойство в одном из моих объектов, чтобы установить значение другого свойства в этом же объекте.

Позвольте мне объяснить, у меня есть два свойства, одно из них — имя изображения, а другое — ссылка для скачивания, чтобы получить ссылку для скачивания, мне нужно взять имя изображения и передать его функции, которая получит мою ссылку для скачивания из Интернета

Я просматривал методы жизненного цикла в doctrine, но я не могу заставить его работать, на данный момент я хочу только отключить это имя изображения в свойстве ссылки для загрузки.

Итак, пользователь загружает файл, я получаю обратно имя файла, беру это имя и использую его для получения ссылки на скачивание в моем свойстве download link.

Я использую метод «postPersist», и опять же, он просто возвращает нулевое значение, когда я смотрю на свою базу данных

Объект:

 /**
 * @ORMColumn(type="text", nullable=true)
 */
private $downloadImage;

//I commented out the setters and getters, cause i dont think i  
//need them since i will be setting the value by default in the
//"PostPersist" method            
  

Метод postPersist:

 /**
* @ORMPostPersist
*/
public function setDownloadLinkValue ()
{
    $this->downloadImage = $this->getImageName(); //Yes yes, i have tried both, with "getImageName()" and "imageName"
}
  

Я думаю, что это очень глупая ошибка, но я не уверен на 100%, если вам нужно что-то еще увидеть в моем коде, пожалуйста, дайте мне знать, чтобы я мог обновить этот пост

Комментарии:

1. public function setFileName(string $name): self { $this->fileName = $name; $this->setDownloadLink($name); return $this} ? — Нет необходимости делать это в postPersist, делайте это при настройке. Если у вас нет какой-то специальной штуковины, которая будет создавать ссылку для вас. Но если это прямая ситуация «заменить любой символ, не содержащий слов, максимум 1 чертой», используйте регулярное выражение в установщике. Цепочка установщиков, как показано, выполнена.

2. Я пытаюсь это сделать, но это тоже не работает, но я думаю, что я знаю, как решить мою проблему, но это был бы совсем другой подход. Спасибо за ответ, кстати