我想知道如何使用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>
但到目前为止还没有。
问候,
在进一步阅读之后,我最终查看了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>
希望这篇文章将来会节省一些时间。
问候,