【问题标题】:Annontation constraint property path注释约束属性路径
【发布时间】:2018-04-22 10:53:34
【问题描述】:

我想知道是否可以为应该应用断言的注释约束设置属性路径之类的东西。

考虑这个例子:

 /**
 * @ORM\OneToOne(targetEntity="Document", cascade={"persist"})
 * @Assert\Image(mimeTypes={"jpeg", "png"}, path="this.file")
 *
protected $document;

在此示例中,我想将 Image 约束应用于文件属性,该属性是 Document 实体的子属性,其属性类似于 path="this.file"

这有可能吗?

【问题讨论】:

  • $file 属性是 Document 实体的属性?
  • 在这个例子中,是的。
  • 也许你可以使用表达式。有没有想过?
  • 如果我可以将现有的约束应用于特定的属性。但这看起来不太可能,我不想重新发明轮子..
  • 问题是我不太明白你问题的某些部分。如果您可以从您的实体发布更多代码,那就太好了。例如类声明和一些重要的字段。

标签: symfony validation constraints entity propertypath


【解决方案1】:

我只能想到在php中动态定义约束。

use Symfony\Component\Validator\Constraints\Image;
// [...]
public function buildForm(FormBuilderInterface $builder, array $options)
    {
    $builder
        ->add('document', FileType::class, [
            'constraints' => [
               new Image([
                  'mimeTypes' => ["jpeg", "png"],
                  'path' => $anyVariable
               ])
            ],
        ]);

【讨论】:

  • Image 类中不存在路径
【解决方案2】:

您可以按照doc 中的说明制作自己的验证器,然后应用到您想要的任何字段。

希望对你有帮助

【讨论】:

  • 不幸的是,我想使用 Symfony 断言,所以我不必重新发明轮子..
猜你喜欢
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 2015-02-06
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多