我想知道如何使用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>
但到目前为止还没有。
此致
答案 0 :(得分: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>
希望这篇文章能在将来节省一些时间。
此致