Symfony2不同的图像验证

时间:2017-01-05 09:55:02

标签: php image validation symfony constraints

起初 - 抱歉我的英语不好: - )

我是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
 * )
 */

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为您需要Validation Groups,因此您可以为每个组的目标实体添加特定的图片验证:profilenews等。

/**
 * @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 **/])
    ]
]);