如何使用XML在Constraint选项中将哈希表定义为有效负载?

时间:2016-07-04 18:13:45

标签: symfony

尝试自定义FOSUserbundle用户实体,我想断言带有约束的用户名和数组中的一些数据作为有效负载。

用注释做,我会这样做:

class User
{
    /**
     * @Assert\Length(..., payload={"my_array":{"Hello1","Hello2"}})
     */
    protected $username;
}

但是要扩展FOSUserbundle约束,必须使用XML来完成:

<constraint name="Length">
    ...
    <option name="payload"><!-- What I tried but it doesn't work -->
        <value>
            <option name="my_array">
                <value>Hello1</value>
                <value>Hello2</value>
            </option>   
        </value>
    </option>
</constraint>

我不能使用'option name =“...”'来定义哈希表?我怎么写呢? 没有在Symfony doc中找到。

以上尝试的错误: 元素'{http://symfony.com/schema/dic/constraint-mapping}选项':不期望此元素。预期是({http://symfony.com/schema/dic/constraint-mapping}约束

之一

但链接http://symfony.com/schema/dic/constraint-mapping已经死了。

1 个答案:

答案 0 :(得分:0)

我刚发现它,嵌套的'value'元素必须设置为:

<constraint name="Length">
    ...
    <option name="payload"><!-- What I tried but it doesn't work -->
        <value key="my_array">
            <value>Hello1</value>
            <value>Hello2</value>
        </value>
    </option>
</constraint>