1

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 に設定するか、a(n) 文字列を Application\Sonata\MediaBundle\Entity\Media のインスタンスに変換するビュー トランスフォーマーを追加することで回避できます。

お願い助けて。

4

2 に答える 2

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'
    )
 )
于 2013-05-23T04:52:35.913 に答える
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',

于 2013-05-23T06:52:22.717 に答える