2013-05-23 3 views
1

Я установил соната Администратор и после установки Sonata МедиаВы можете избежать этой ошибки, установив «data_class» при использовании sonata_media_type

У меня есть класс администратора для «цветов» и установить в configureFormFields

->add('image', 'sonata_media_type', array('required' => false, 
    'context' => 'default', 
    'label' => 'Image', 
    'provider'=>'sonata.media.provider.image' 
)) 

В то время как хранится в базе данных, но когда редактирование показывает эту ошибку

Ожидается, что данные вида формы будут экземпляром класса Application \ Sonata \ MediaBundle \ Entity \ Media, но является строкой (n). Вы можете избежать этой ошибки, установив опцию «data_class» равной нулю или добавив трансформатор вида, который преобразует строку (n) в экземпляр приложения \ Sonata \ MediaBundle \ Entity \ Media.

Помогите мне, пожалуйста.

+0

Включите полное исключение в свой ответ и предоставьте форму и важные части вашего контроллера. – nifr

ответ

1

Попробуйте установить опцию data_class для соответствующего класса сущностей, как следует из сообщения ...

->add('image', 'sonata_media_type', 
    array(
     'required' => false, 
     'context' => 'default', 
     'data_class' => 'Application\Sonata\MediaBundle\Entity\Media', 
     'label'  => 'Image', 
      'provider' =>'sonata.media.provider.image' 
    ) 
) 
+0

Без изменений для меня. –

1

Вы должны установить правильный класс данных:

->add('media', 'sonata_media_type', array(
        'provider' => 'sonata.media.provider.image', 
        'context' => 'default', 
        'data_class' => 'Application\Sonata\MediaBundle\Entity\Media', 
        'required' => false, 
        'label' => 'Image' 
       )) 

Обратите внимание на: «data_class» => 'Application \ Sonata \ MediaBundle \ Entity \ Media',