Задать вопрос
@gleb-mihalkov

Как добавить сущности свойство в Zend Framework 2, ORM Doctrine?

Доброе время суток. Ситуация следующая. В модуле есть сущность, связанная с таблицей БД. Требуется добавить ей два сохраняемых поля. Но почему-то ORM не сохраняет их значения в базе.

Делал следующее:

1) К объявлению класса добавил

/**
     * @ORM\Column(type="string", name="description", nullable=true)
     * @var string
     * @author gleb.mihalkov
     */
    private $description;

    /**
     * @ORM\Column(type="string", name="image", nullable=true)
     * @var string
     * @author gleb.mihalkov
     */
    private $image;


2) Добавил геттеры и сеттеры:

/**
     * Returns stock's image url.
     * @return string
     * @author gleb.mihalkov
     */
    public function getImage()
    {
        return $this->image;
    }

    /**
     * Sets URL of stock's image.
     * @param string $url - Url of stock's image.
     * @author gleb.mihalkov
     */
    public function setImage($url)
    {
        $this->image = $url;
        return $this;
    }

    /**
     * Gets description of stock.
     * @return string
     * @author gleb.mihalkov
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Sets description of stock.
     * @param string $value - Value of new description.
     * @author gleb.mihalkov
     */
    public function setDescription($value)
    {
        $this->description = $value;
        return $value;
    }


3) Добавил input's, дополнил форму, представление... В методе контроллера проверял через геттеры - значения полям сущности присваиваются.

4) Дополнил таблицу в базе данных колонками `image` varchar(255) и `description` varchar(255). Опечаток, проверял, нет.

А происходит следующее: изменения в старых полях сущности ORM сохраняет, а в новых - нет. Подскажите, пожалуйста, в чём проблема?
  • Вопрос задан
  • 528 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Так как вы полный листинг файлов сущностей не показали, единственное, что приходит в голову - это, возможно то, что у вас маппинг сущности лежит, например, в YAML, а для новых полей вы делаете его в аннотациях.
Вообще, попробуйте сделать валидацию маппинга. А ещё попробуйте сделать schema:create и посмотрите, есть ли в результирующем SQL ваши поля. Например, так:
orm:schema-tool:create --dump-sql
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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