У меня есть Событие , содержащее галерею .В locale должно быть несколько галерей.Я применил здесь ту же самую переводимую аннотацию из моей title string:
use Gedmo\Mapping\Annotation as Gedmo;
use Sonata\TranslationBundle\Model\Gedmo\TranslatableInterface;
use Sonata\TranslationBundle\Traits\Gedmo\PersonalTranslatableTrait;
/** other codes hidden for brevity **/
/**
* @ORM\Entity(repositoryClass="App\Repository\EventRepository")
* @ORM\Table(name="events")
* @Gedmo\TranslationEntity(class="App\Entity\Translation\EventTranslation")
*/
class Event implements TranslatableInterface {
use PersonalTranslatableTrait;
/** other fields hidden for brevity **/
/**
* @var Gallery $gallery
*
* @ORM\ManyToOne(targetEntity="App\Sonata\MediaBundle\Entity\Gallery", cascade={"persist"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="gallery_id", referencedColumnName="id", onDelete = "SET NULL")
* })
*
* @Gedmo\Translatable()
*/
private $gallery;
Но при обновлении я получаю:
InvalidMappingException Невозможно найти переводимый [галерея] как сопоставленное свойство в объекте - App \ Entity \ Event
Кстати, строка заголовка и другие переводимые строки работали правильно (т.е.записи создаются в таблицах event_translations без ошибок)
Так, например, локаль по умолчанию (en) и другие локали (ph, wb)
Мой ожидаемый результат примерно такой:
table: event
----------------------------------
id | title | gallery_id
23 | my event | 451
----------------------------------
table: event_translations
----------------------------------------------------------------------------
id |locale |object_class |field |foreign_key |content
1 |ph |App\Entity\Event |title |23 |aking piyesta
2 |ph |App\Entity\Event |gallery |23 |452
3 |wb |App\Entity\Event |gallery |23 |453
----------------------------------------------------------------------------
Строка перевода заголовка уже верна.Я просто хочу, чтобы та же логика применялась и к галерее.