2

提出されたソナタ メディア タイプ フォームを検証する方法を見つけようと懸命に努力しています。私のエンティティは、1 対 1 の関係でメディア テーブルに関連付けられています。ここに関係があります

 oneToOne:
  user:
    targetEntity: Sinepulse\UserBundle\Entity\User
    mappedBy: profile_info
    cascade: [all]
  profile_image:
    targetEntity: Sinepulse\Sonata\MediaBundle\Entity\Media
    cascade:      [ all ]
    joinColumn:
        name: profile_image_id
        referencedColumnName: id
        nullable: true
        onDelete: 'SET NULL'

ここに私のフォーム:

                ->add('profile_image', 'sonata_media_type', array(
                'provider' => 'sonata.media.provider.image',
                'context' => 'user',
                'required'=>false,
                'validation_groups' => 'Default'
            ))

私の試みた検証:

    profile_image:
    - File: { mimeTypes: [ image/png ], groups: [image,logo, offer] } 

ここ数日、解決策を見つけるのに役立ちません。画像以外のファイルを提出する場合。2 つの例外RuntimeException&がスローされInvalidArgumentExceptionました。だから私を助けてください!

4

3 に答える 3

1

validation.yml ファイルで、画像、ロゴ、オファーグループのみのルールを作成しました。ただし、フォームでは、validation_groups を Default に指定します。したがって、そのルールを適用する場合は、次のことを行う必要があります。

グループをフォームに追加します。

->add('profile_image', 'sonata_media_type', array(
    // ...
    'validation_groups' => array('Default', 'image') // or logo or offer
))

または、validation.yml のグループを削除します。

- File: { mimeTypes: [ image/png ] }
于 2013-09-26T18:30:13.917 に答える