我正在 Symfony2 中构建一个表单类。在我的课堂上,我有一个选择领域。我构建了一个函数来返回我的选择数组:
public function getCardTypes() {
return array('visa' => 'Visa', 'mc' => 'MasterCard', 'amex' => 'American Express');
}
后来,我用这个数组在我的表单中添加了一个选择字段:
$builder->add('PaymentCCType', 'choice', array('choices' => $this->getCardTypes()));
然后在 getDefaultOptions 函数中,我对该字段有一个选择约束:
'PaymentCCType' => new Choice(array('choices' => $this->getCardTypes())),
我似乎对这个验证器有问题。当我提交此表单时,我的选择框下方出现以下错误:“您选择的值不是有效的选择”。当然,我正在使用数组中的一种选择。
我究竟做错了什么?
/* 编辑 */
我注意到在我喜欢的 4 个字段中,我只得到其中 3 个的错误。选择月份的那个(简单的 1-12),验证有效。
/* 编辑 2 */
当数组键与值不匹配时,似乎会出现此问题。我将我的阵列切换到array('Visa' => 'Visa', 'MasterCard' => 'MasterCard', 'American Express' => 'American Express')
现在它可以工作了。有没有办法解决?我觉得我不能是唯一一个有这个问题的人。即使您有一个常规(非关联)数组,它也会发生array('Visa', 'MasterCard', 'American Express')