Symfony复合UniqueEntity约束xml

问题描述 投票:0回答:1

我想知道如何使用xml配置在实体上指定复合UniqueEntity约束。

我知道相当于@UniqueEntity(fields={"field1"})

<class name="Namespace\To\Entity">
    <constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
        <option name="fields">field1</option>
        <option name="errorPath">field1</option>
        <option name="message">error.message.key</option>
    </constraint>
</class>

但是我找不到如何在xml上给there mentioned数组来实现@UniqueEntity(fields={"field1, "field2"})

我试过各种组合,比如

<class name="Namespace\To\Entity">
    <constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
        <option name="fields">field1</option>
        <option name="fields">field2</option>
        <option name="errorPath">field1</option>
        <option name="message">error.message.key</option>
    </constraint>
</class>

甚至

<class name="Namespace\To\Entity">
    <constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
        <option name="fields">field1, field2</option>
        <option name="errorPath">field1</option>
        <option name="message">error.message.key</option>
    </constraint>
</class>

但到目前为止还没有。

问候,

xml symfony validation
1个回答
0
投票

在进一步阅读之后,我最终查看了Symfony\Component\Validator\Mapping\Load\schema\dic\constraint-mapping\constraint-mapping-1.0.xsd文件,在那里我找到了答案。

如果你想让xml等同于@UniqueEntity(fields={"field1", "field2"}),你需要使用value元素。

这应该是什么样的

<class name="Namespace\To\Entity">
    <constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
       <option name="fields">
            <value>field1</value>
            <value>field2</value>
        </option>
        <option name="errorPath">field1</option>
        <option name="message">error.message.key</option>
    </constraint>
</class>

希望这篇文章将来会节省一些时间。

问候,

© www.soinside.com 2019 - 2024. All rights reserved.