起初 - 抱歉我的英语不好: - )
我是symfony的新手,我的图像验证有问题。我将项目中的所有图像保存在一个表中。但我需要对个人资料图片,新闻图片等进行不同的验证。
/**
* @ORM\ManyToOne(targetEntity="Image", cascade={"persist"})
* @ORM\JoinColumn(name="teaser_right", referencedColumnName="id")
*/
private $teaserRight;
/**
* @ORM\ManyToOne(targetEntity="Image", cascade={"persist"})
* @ORM\JoinColumn(name="teaser_left", referencedColumnName="id")
*/
private $teaserLeft;
在目标实体中,我无法执行以下操作,因为不同的图像需要进行不同的验证
/**
* @ORM\Column(name="file", type="string", length=255, nullable=true)
* @Assert\Image(
* minWidth = 350,
* minHeight = 350
* )
*/
有什么想法吗?
答案 0 :(得分:1)
我认为您需要Validation Groups,因此您可以为每个组的目标实体添加特定的图片验证:profile
,news
等。
/**
* @ORM\Column(name="file", type="string", length=255, nullable=true)
* @Assert\Image(
* minWidth = 350,
* minHeight = 350,
* groups = {"profile"}
* )
*/
答案 1 :(得分:0)
通过这种方式,您可以完全控制每个表单允许的内容。不管怎样我猜你有不同形象的单独表格
$formBuilder->add('uploadedFiles', ImageType::class, [
'required' => false,
'multiple' => true,
'constraints' => [
new \Symfony\Component\Validator\Constraints\Image([ /** options here **/])
]
]);