Вы можете избежать этой ошибки, установив data_class при использовании sonata_media_type.

Я установил Sonata Admin и после установки Sonata Media

у меня есть администратор класса для "цветов" и установлен в 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» значение null или добавив преобразователь представления, который преобразует строку (n) в экземпляр Application\Sonata\MediaBundle\Entity\Media.

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


person user2412052    schedule 23.05.2013    source источник
comment
Пожалуйста, включите полное исключение в свой ответ и предоставьте форму и важные части вашего контроллера.   -  person Nicolai Fröhlich    schedule 23.05.2013


Ответы (2)


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

->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',

person Baba Yaga    schedule 23.05.2013

Попробуйте установить для параметра 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'
    )
 )
person Nicolai Fröhlich    schedule 23.05.2013
comment
Никаких изменений для меня с этим. - person Paul Leclerc; 22.07.2017