Symfony2, Sonata MediaBundle: добавление новых полей в таблицу

Я пытаюсь добавить 4 новых поля в Sonata MediaBundle для GalleryHasMedia.

Я правильно переопределяю GalleryHasMediaAdmin:

GalleryHasMedia

Чтобы переопределить это, я добавил в services.yml эту строку:

parameters:
sonata.media.admin.gallery_has_media.class: Application\Sonata\MediaBundle\Admin\GalleryHasMediaAdmin

Мне пришлось создавать методы вручную (getName и прочее), так как доктрина php app / console: generate: entity ApplicationSonataMediaBundle: GalleryHasMedia
по-видимому, не заботятся о моих новых полях, установленных в моем пользовательском объекте Application \ Sonata \ MediaBundle \ Entity \ GalleryHasMedia.

Также —dump-sql возвращает «Ничего не обновлять». Но методы (getName и другое) правильно распознаются администратором Sonata, так почему бы не новые поля?

здесь мой пользовательский объект:

<?php
namespace Application\Sonata\MediaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Sonata\MediaBundle\Entity\BaseGalleryHasMedia as BaseGalleryHasMedia;

/**
* @ORM\Entity
* @ORM\Table(name="media__gallery_media")
*/
class GalleryHasMedia extends BaseGalleryHasMedia
{

/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @ORM\Column(type="string", length=64, nullable=false, name="name")
**/
private $name;

/**
* @ORM\Column(type="string", length=64, nullable=false, name="activity")
**/
private $activity;

/**
* @ORM\Column(type="text", nullable=false, name="description")
*/
private $description;

/**
* @ORM\Column(type="string", length=255, nullable=false, name="code")
**/
private $link;

/**
* Get id
*
* @return integer $id
*/
public function getId()
{
return $this->id;
}

/**
* Set name
*
* @param string $name
* @return GalleryHasMedia
*/
public function setName($name)
{
$this->name = $name;

return $this;
}

/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}

/**
* Set activity
*
* @param string $activity
* @return GalleryHasMedia
*/
public function setActivity($activity)
{
$this->activity = $activity;

return $this;
}

/**
* Get activity
*
* @return string
*/
public function getActivity()
{
return $this->activity;
}

/**
* Set description
*
* @param string $description
* @return GalleryHasMedia
*/
public function setDescription($description)
{
$this->description = $description;

return $this;
}

/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}

/**
* Set link
*
* @param string $link
* @return GalleryHasMedia
*/
public function setLink($link)
{
$this->link = $link;

return $this;
}

/**
* Get link
*
* @return string
*/
public function getLink()
{
return $this->link;
}

}

И я правильно поставил, как сказано в их Документация :

sonata_media:
# if you don't use default namespace configuration
class:
media: Application\Sonata\MediaBundle\Entity\Media
gallery: Application\Sonata\MediaBundle\Entity\Gallery
gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia

Я использую автоматическое сопоставление, поэтому мой пользовательский объект правильно сопоставлен:

[OK] Приложение \ Соната \ MediaBundle \ Entity \ GalleryHasMedia

здесь фактическая таблица (таблица сонаты по умолчанию):

соната's default table

Итак, есть идеи, почему я не могу добавить новые поля в таблицу gallery_has_media?

ОБНОВИТЬ :

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

Этот парень столкнулся с подобной проблемой вопрос

1

Решение

Хорошо, я нашел ответ правильно объяснил Вот.

Удаление Application / Sonata / MediaBundle / Resources / config / doctrine позволило мне использовать аннотации внутри моего пользовательского объекта.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]